diff --git a/Jenkinsfile b/Jenkinsfile
index 44c34113a1aebaf8ba252f30bf6bd3b9068c9b0a..882add3efb917a596fc38b9a8d6f81b59d66504c 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -64,16 +64,12 @@ pipeline {
                         else {
                             sh 'npm run ci-build'
                         }
-    					try {
-	                        if (isMasterBranch()) {
-	                            withSonarQubeEnv('sonarqube-ozg-sh'){
-	                                sh 'npm run ci-sonar'
-	                            }
-	                        } else {
-                                sh 'npm run ci-test'
+                        if (isMasterBranch()) {
+                            withSonarQubeEnv('sonarqube-ozg-sh'){
+                                sh 'npm run ci-sonar'
                             }
-                        } catch (Exception e) {
-                            unstable("SonarQube failed")
+                        } else {
+                            sh 'npm run ci-test'
                         }
                     }
                 }
diff --git a/Jenkinsfile.admin b/Jenkinsfile.admin
index 56c20de85b5ca92ab3b912af303bf8b691b9d3cc..32dd06e2912dab4d05728b2baddb0e95ee9bba0a 100644
--- a/Jenkinsfile.admin
+++ b/Jenkinsfile.admin
@@ -34,31 +34,28 @@ pipeline {
         stage('build admin client and its docker image') {
             steps {
                 script {
-                FAILED_STAGE=env.STAGE_NAME
-
-                dir('alfa-client') {
-                    sh 'echo "registry=https://nexus.ozg-sh.de/repository/npm-proxy" >> ~/.npmrc'
-                    sh 'echo "//nexus.ozg-sh.de/:_auth=amVua2luczprTSFnNVUhMVQzNDZxWQ==" >> ~/.npmrc'
-
-                    sh 'npm cache verify'
-                    sh 'npm install'
-
-                    if (isReleaseBranch()) {
-                    sh 'npm run ci-prodBuild-admin'
-                    } else {
-                    sh 'npm run ci-build-admin'
-                    }
-                    if (isMasterBranch()) {
-                        try {
+	                FAILED_STAGE=env.STAGE_NAME
+	
+	                dir('alfa-client') {
+	                    sh 'echo "registry=https://nexus.ozg-sh.de/repository/npm-proxy" >> ~/.npmrc'
+	                    sh 'echo "//nexus.ozg-sh.de/:_auth=amVua2luczprTSFnNVUhMVQzNDZxWQ==" >> ~/.npmrc'
+	
+	                    sh 'npm cache verify'
+	                    sh 'npm install'
+	
+	                    if (isReleaseBranch()) {
+	                    	sh 'npm run ci-prodBuild-admin'
+	                    } else {
+	                    	sh 'npm run ci-build-admin'
+	                    }
+	                    if (isMasterBranch()) {
                             withSonarQubeEnv('sonarqube-ozg-sh'){
-                                sh 'npm run ci-sonar-admin'
+                                sh 'npm run ci-sonar'
                             }
+                        } else {
+                            sh 'npm run ci-test'
                         }
-                        catch (Exception e) {
-                            unstable("SonarQube failed")
-                        }
-                    }
-                }
+	                }
                 }
             }
         }
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
index 94778bc50d3155b931f31324eec76b52cc538c2d..1319b8d93554b29e92dfc3f46aee07a2b82f5eae 100644
--- a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
+++ b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
@@ -13,7 +13,7 @@ import {
 } from '../../../user/user.model';
 import { fakeAsync, tick } from '@angular/core/testing';
 import { singleCold, singleHot } from 'libs/tech-shared/src/lib/resource/marbles';
-import { Observable, throwError } from 'rxjs';
+import { lastValueFrom, Observable, throwError } from 'rxjs';
 import { hot } from 'jest-marbles';
 import { getOrganisationseinheitErrorMessage } from '../../../user/user.util';
 
@@ -43,31 +43,90 @@ describe('OrganisationseinheitFormService', () => {
       formService.handleError = jest.fn();
     });
 
-    it('should call handle error with service call observable', fakeAsync(() => {
-      const error: OrganisationseinheitError = createOrganisationseinheitError();
-      formService.callService = jest.fn().mockReturnValue(throwError(() => error));
+    describe('with successful validation', () => {
+      beforeEach(() => {
+        formService.validate = jest.fn().mockReturnValue(true);
+      });
+      it('should call handle error with service call observable', fakeAsync(() => {
+        const error: OrganisationseinheitError = createOrganisationseinheitError();
+        formService.callService = jest.fn().mockReturnValue(throwError(() => error));
+
+        formService.submit().subscribe();
+        tick();
+
+        expect(formService.handleError).toHaveBeenCalledWith(error);
+      }));
 
-      formService.submit().subscribe();
-      tick();
+      it('should emit emit progress as false on error', () => {
+        const error: OrganisationseinheitError = createOrganisationseinheitError();
+        formService.callService = jest.fn().mockReturnValue(hot('a#', { a: true }, error));
 
-      expect(formService.handleError).toHaveBeenCalledWith(error);
-    }));
+        const progressObservable: Observable<boolean> = formService.submit();
+
+        expect(progressObservable).toBeObservable(hot('a(b|)', { a: true, b: false }));
+      });
 
-    it('should emit emit progress as false on error', () => {
-      const error: OrganisationseinheitError = createOrganisationseinheitError();
-      formService.callService = jest.fn().mockReturnValue(hot('a#', { a: true }, error));
+      it('should return progress observable', () => {
+        formService.callService = jest.fn().mockReturnValue(singleCold(true));
 
-      const progressObservable: Observable<boolean> = formService.submit();
+        const progressObservable: Observable<boolean> = formService.submit();
 
-      expect(progressObservable).toBeObservable(hot('a(b|)', { a: true, b: false }));
+        expect(progressObservable).toBeObservable(singleCold(true));
+      });
     });
+    describe('with unsuccessful validation', () => {
+      beforeEach(() => {
+        formService.validate = jest.fn().mockReturnValue(false);
+      });
 
-    it('should return progress observable', () => {
-      formService.callService = jest.fn().mockReturnValue(singleCold(true));
+      it('should return progress observable with false', async () => {
+        const progressObservable: Observable<boolean> = formService.submit();
 
-      const progressObservable: Observable<boolean> = formService.submit();
+        const progress: boolean = await lastValueFrom(progressObservable);
 
-      expect(progressObservable).toBeObservable(singleCold(true));
+        expect(progress).toBeFalsy();
+      });
+    });
+  });
+
+  describe('validate', () => {
+    const hasIdMissingError = () =>
+      formService.form.hasError(
+        OrganisationseinheitErrorType.ID_MISSING,
+        OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_IDS_FIELD,
+      );
+    describe('without organisationeinheitIds', () => {
+      beforeEach(() => {
+        formService.form.setValue({
+          [OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_NAME_FIELD]:
+            organisationseinheit.name,
+          [OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_IDS_FIELD]: ',',
+        });
+      });
+
+      it('should set id-missing error', () => {
+        formService.validate();
+
+        expect(hasIdMissingError()).toBeTruthy();
+      });
+      it('should be invalid', () => {
+        const valid: boolean = formService.validate();
+
+        expect(valid).toBeFalsy();
+      });
+    });
+    describe('with organisationeinheitIds', () => {
+      it('should not set error', () => {
+        formService.validate();
+
+        expect(hasIdMissingError()).toBeFalsy();
+      });
+
+      it('should be valid', () => {
+        const valid: boolean = formService.validate();
+
+        expect(valid).toBeTruthy();
+      });
     });
   });
 
@@ -204,6 +263,14 @@ describe('OrganisationseinheitFormService', () => {
   describe('patch', () => {
     const organisationseinheit: Organisationseinheit = createOrganisationseinheit();
 
+    it('should reset', () => {
+      formService.reset = jest.fn();
+
+      formService.patch(organisationseinheit);
+
+      expect(formService.reset).toHaveBeenCalled();
+    });
+
     it('should set source', () => {
       formService.patch(organisationseinheit);
 
@@ -246,6 +313,14 @@ describe('OrganisationseinheitFormService', () => {
   });
 
   describe('reset', () => {
+    it('should set source to null', () => {
+      formService.form.reset = jest.fn();
+
+      formService.reset();
+
+      expect(formService.source).toBeNull();
+    });
+
     it('should call form reset', () => {
       formService.form.reset = jest.fn();
 
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts
index a5b71af7536c8a763466a3600cd3f67c9487d3dd..ecad82623c8f1f5f192fd77ba5e96d381efedfa8 100644
--- a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts
+++ b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts
@@ -30,12 +30,16 @@ export class OrganisationseinheitFormservice {
   }
 
   public submit(): Observable<boolean> {
-    return this.callService().pipe(
-      catchError((error: OrganisationseinheitError) => {
-        this.handleError(error);
-        return of(false);
-      }),
-    );
+    if (this.validate()) {
+      return this.callService().pipe(
+        catchError((error: OrganisationseinheitError) => {
+          this.handleError(error);
+          return of(false);
+        }),
+      );
+    } else {
+      return of(false);
+    }
   }
 
   callService(): Observable<boolean> {
@@ -57,6 +61,20 @@ export class OrganisationseinheitFormservice {
     });
   }
 
+  validate(): boolean {
+    let valid: boolean = true;
+
+    if (this.getOrganisationseinheitIds().length == 0) {
+      this.setError(OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_IDS_FIELD, {
+        errorType: OrganisationseinheitErrorType.ID_MISSING,
+        detail: '',
+      });
+      valid = false;
+    }
+
+    return valid;
+  }
+
   private getName(): string {
     return this.getStringFromPotentiallyEmptyField(
       OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_NAME_FIELD,
@@ -65,9 +83,7 @@ export class OrganisationseinheitFormservice {
 
   private getOrganisationseinheitIds(): string[] {
     return this.splitOrganisationseinheitIds(
-      this.getStringFromPotentiallyEmptyField(
-        OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_IDS_FIELD,
-      ),
+      this.form.get(OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_IDS_FIELD).value ?? '',
     );
   }
 
@@ -84,15 +100,17 @@ export class OrganisationseinheitFormservice {
       error.errorType === OrganisationseinheitErrorType.NAME_CONFLICT ||
       error.errorType === OrganisationseinheitErrorType.NAME_MISSING
     ) {
-      const control: AbstractControl = this.form.get(
-        OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_NAME_FIELD,
-      );
-      control.setErrors({
-        [error.errorType]: getOrganisationseinheitErrorMessage(error),
-      });
+      this.setError(OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_NAME_FIELD, error);
     }
   }
 
+  private setError(controlName: string, error: OrganisationseinheitError): void {
+    const control: AbstractControl = this.form.get(controlName);
+    control.setErrors({
+      [error.errorType]: getOrganisationseinheitErrorMessage(error),
+    });
+  }
+
   splitOrganisationseinheitIds(organisationseinheitIdsString: string): string[] {
     return organisationseinheitIdsString
       .split(',')
@@ -101,6 +119,7 @@ export class OrganisationseinheitFormservice {
   }
 
   public patch(organisationseinheit: Organisationseinheit): void {
+    this.reset();
     this.source = organisationseinheit;
     this.form.patchValue({
       [OrganisationseinheitFormservice.ORGANISATIONSEINHEIT_NAME_FIELD]: organisationseinheit.name,
@@ -110,6 +129,7 @@ export class OrganisationseinheitFormservice {
   }
 
   public reset(): void {
+    this.source = null;
     this.form.reset();
     this.form.markAsUntouched();
   }
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts b/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
index d8c740a91f8509dcf6be09155f277fdf13b8d457..a1cea49d6140724fd3f32c367ecd56937d112f3d 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
+++ b/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
@@ -176,7 +176,7 @@ describe('PostfachFormComponent', () => {
     function createProblemDetailForAbsenderName(): ProblemDetail {
       return {
         ...createProblemDetail(),
-        'invalid-params': [{ ...createInvalidParam(), name: 'settingsBody.absender.name' }],
+        'invalid-params': [{ ...createInvalidParam(), name: 'settingBody.absender.name' }],
       };
     }
 
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts b/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
index a7adf151bf710ae9e6b0417efdf2334a244ea862..f615c6ce868a39449363184dd6643f96680e3e38 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
+++ b/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
@@ -3,9 +3,10 @@ import { PostfachFormService } from './postfach.formservice';
 import { mock, Mock, useFromMock } from '@alfa-client/test-utils';
 import { PostfachService } from '../../postfach.service';
 import { createPostfach, createPostfachResource } from '../../../../../test/postfach/postfach';
+import { PostfachResource } from '../../postfach.model';
+import { createStateResource, StateResource } from '@alfa-client/tech-shared';
 import { Postfach } from '../../postfach.model';
 import { Observable, of } from 'rxjs';
-import { toResource } from 'libs/tech-shared/test/resource';
 import { cold } from 'jest-marbles';
 import { createEmptyStateResource } from '@alfa-client/tech-shared';
 
@@ -27,7 +28,10 @@ describe('PostfachFormService', () => {
     const postfach: Postfach = createPostfach();
 
     beforeEach(() => {
-      postfachService.save.mockReturnValue(of(toResource(createPostfachResource())));
+      const stateResource: StateResource<PostfachResource> =
+        createStateResource(createPostfachResource());
+      postfachService.save.mockReturnValue(of(stateResource));
+      postfachService.get.mockReturnValue(of(stateResource));
       formService.form.setValue({
         [PostfachFormService.ASBSENDER_GROUP]: {
           [PostfachFormService.NAME_FIELD]: postfach.absender.name,
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts b/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
index 1a8f122192eac7732110e0ee37b54244ed3234ab..7f0a67b336a0b1adad0affc350741be662664de1 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
+++ b/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
@@ -59,7 +59,7 @@ export class PostfachFormService extends AbstractFormService {
   }
 
   protected getPathPrefix(): string {
-    return 'settingsBody';
+    return 'settingBody';
   }
 
   public get invalidEmpty(): boolean {
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts b/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts
index 4fa62e36803d3ce3326f0d9b88e5dfe55b15c188..b35600877d2dffe3f97f487ac94b5a295ab04fc0 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts
+++ b/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts
@@ -4,7 +4,7 @@ import { Postfach, PostfachResource, PostfachSettingsItem } from './postfach.mod
 import { ResourceService } from 'libs/tech-shared/src/lib/resource/resource.service';
 import { SettingsService } from '../admin-settings.service';
 import { ResourceServiceConfig } from 'libs/tech-shared/src/lib/resource/resource.model';
-import { Observable, of, tap } from 'rxjs';
+import { Observable } from 'rxjs';
 import { HttpError, StateResource } from '@alfa-client/tech-shared';
 import { SettingName } from '../admin-settings.model';
 import { PostfachLinkRel } from './postfach.linkrel';
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.model.ts b/alfa-client/libs/admin-settings/src/lib/user/user.model.ts
index 13a1c2cf616cfae08c6a485a50e3d8f2f47c4a84..308e945aa9b0f900ccfc135eeb98f713efc7e5e7 100644
--- a/alfa-client/libs/admin-settings/src/lib/user/user.model.ts
+++ b/alfa-client/libs/admin-settings/src/lib/user/user.model.ts
@@ -13,6 +13,7 @@ export interface OrganisationseinheitState {
 export enum OrganisationseinheitErrorType {
   NAME_CONFLICT = 'name-conflict',
   NAME_MISSING = 'name-missing',
+  ID_MISSING = 'id-missing',
 }
 
 export interface OrganisationseinheitError {
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.util.ts b/alfa-client/libs/admin-settings/src/lib/user/user.util.ts
index ac5daa3cb50772102f200277a078d48c081ac123..2a1da4ffbdac3353761518988c9c112cbc450ca1 100644
--- a/alfa-client/libs/admin-settings/src/lib/user/user.util.ts
+++ b/alfa-client/libs/admin-settings/src/lib/user/user.util.ts
@@ -3,6 +3,8 @@ import { OrganisationseinheitError, OrganisationseinheitErrorType } from './user
 export const KEYCLOAK_ERROR_MESSAGES: { [type: string]: string } = {
   [OrganisationseinheitErrorType.NAME_CONFLICT]: 'Der Name exisitert bereits.',
   [OrganisationseinheitErrorType.NAME_MISSING]: 'Bitte den Namen angeben.',
+  [OrganisationseinheitErrorType.ID_MISSING]:
+    'Bitte mindestens eine Organisationseinheit ID angeben.',
 };
 
 export const KEYCLOAK_CREATE_GROUPS_ERROR_STATUS: {
diff --git a/alfa-client/libs/admin-settings/test/postfach/postfach.ts b/alfa-client/libs/admin-settings/test/postfach/postfach.ts
index 5b7fb0003b346167c232422c8969062e8559dc1d..31fbf8b79bc0a23c2cbfae6a19d6f8ecd5d3c481 100644
--- a/alfa-client/libs/admin-settings/test/postfach/postfach.ts
+++ b/alfa-client/libs/admin-settings/test/postfach/postfach.ts
@@ -34,6 +34,6 @@ export function createPostfachResource(): PostfachResource {
 export function createSettingItemResource(): SettingItemResource {
   return toResource({
     name: faker.random.word(),
-    settingsBody: {},
+    settingBody: {},
   });
 }
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
index 3311716c86977541f2d114b2ef74d8b5db0cdd38..08d197454b4224dc712dcaf47f1ed3f881fe6c34 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
@@ -1,15 +1,16 @@
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
-import { Observable, lastValueFrom, of, throwError } from 'rxjs';
+import { lastValueFrom, Observable, of, throwError } from 'rxjs';
 import { ResourceService } from './resource.service';
 import { ResourceRepository } from './resource.repository';
 import { LinkRelationName, ResourceServiceConfig, SaveResourceData } from './resource.model';
-import { Resource, getUrl } from '@ngxp/rest';
+import { getUrl, Resource } from '@ngxp/rest';
 import { createDummyResource } from 'libs/tech-shared/test/resource';
+import * as ResourceUtil from './resource.util';
 import {
-  StateResource,
   createEmptyStateResource,
   createErrorStateResource,
   createStateResource,
+  StateResource,
 } from './resource.util';
 import { fakeAsync, tick } from '@angular/core/testing';
 import { singleCold, singleHot } from './marbles';
@@ -18,8 +19,6 @@ import { createProblemDetail } from 'libs/tech-shared/test/error';
 import { HttpError, ProblemDetail } from '../tech.model';
 import { cold } from 'jest-marbles';
 
-import * as ResourceUtil from './resource.util';
-
 describe('ResourceService', () => {
   let service: ResourceService<Resource, Resource>;
   let config: ResourceServiceConfig<Resource>;
@@ -443,6 +442,16 @@ describe('ResourceService', () => {
 
       expect(service.handleError).toHaveBeenCalledWith(errorResponse);
     });
+
+    it('should update state resource subject', fakeAsync(() => {
+      service.stateResource.next(createStateResource(resourceWithEditLinkRel));
+      repository.save.mockReturnValue(of(loadedResource));
+
+      service.save(dummyToSave).subscribe();
+      tick();
+
+      expect(service.stateResource.value).toEqual(createStateResource(loadedResource));
+    }));
   });
 
   describe('handleError', () => {
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
index c14a661395d83c8b9ff53fd4286ff4a2f7d2211d..a5a705e9d9b0369c2169f00075925c5a67bc4459 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
@@ -1,11 +1,10 @@
 import {
   BehaviorSubject,
-  Observable,
   catchError,
   combineLatest,
   filter,
   map,
-  mergeMap,
+  Observable,
   of,
   startWith,
   tap,
@@ -13,21 +12,20 @@ import {
 } from 'rxjs';
 import { ResourceServiceConfig } from './resource.model';
 import {
-  StateResource,
   createEmptyStateResource,
   createErrorStateResource,
   createStateResource,
   isLoadingRequired,
+  StateResource,
   throwErrorOn,
 } from './resource.util';
-import { Resource, getUrl, hasLink } from '@ngxp/rest';
+import { getUrl, hasLink, Resource } from '@ngxp/rest';
 import { ResourceRepository } from './resource.repository';
 import { isEqual, isNull } from 'lodash-es';
 import { isNotNull } from '../tech.util';
 import { HttpErrorResponse } from '@angular/common/http';
 import { isUnprocessableEntity } from '../http.util';
 import { HttpError, ProblemDetail } from '../tech.model';
-import { isDevMode } from '@angular/core';
 
 /**
  * B = Type of baseresource
@@ -146,11 +144,10 @@ export class ResourceService<B extends Resource, T extends Resource> {
 
   public save(toSave: unknown): Observable<StateResource<T | HttpError>> {
     this.verifyEditLinkRel();
-    return this.stateResource.asObservable().pipe(
-      mergeMap((selectedResource: StateResource<T>) =>
-        this.doSave(selectedResource.resource, toSave),
-      ),
-      map((loadedResource: T) => createStateResource(loadedResource)),
+    const previousResource: T = this.stateResource.value.resource;
+    return this.doSave(previousResource, toSave).pipe(
+      tap((loadedResource: T) => this.stateResource.next(createStateResource(loadedResource))),
+      map(() => this.stateResource.value),
       catchError((errorResponse: HttpErrorResponse) => this.handleError(errorResponse)),
     );
   }
diff --git a/alfa-client/package.json b/alfa-client/package.json
index fcc5b9638eb668f162512ac970621496023432aa..6c07b2b9f16c61036f4ebb7fe22b22894ca0d741 100644
--- a/alfa-client/package.json
+++ b/alfa-client/package.json
@@ -20,7 +20,6 @@
     "ci-prodBuild-admin": "nx container admin && cp -r dist/ apps/admin/",
     "ci-test": "nx run-many --target=test --parallel 8 -- --runInBand",
     "ci-sonar": "nx run-many --target=test --parallel 8 -- --runInBand --codeCoverage --coverageReporters=lcov --testResultsProcessor=jest-sonar-reporter && npx sonar-scanner",
-    "ci-sonar-admin": "nx run admin:test --runInBand --codeCoverage --coverageReporters=lcov --testResultsProcessor=jest-sonar-reporter && npx sonar-scanner -Dsonar.projectBaseDir=./apps/admin",
     "lint": "nx workspace-lint && nx lint",
     "affected:apps": "nx affected:apps",
     "affected:libs": "nx affected:libs",
diff --git a/alfa-client/pom.xml b/alfa-client/pom.xml
index 3e0736e1eff901f603859f7f6a7b69e40fdd020d..de330edf9942d36d8f3ba01a10539ce907fa8095 100644
--- a/alfa-client/pom.xml
+++ b/alfa-client/pom.xml
@@ -29,7 +29,7 @@
 	<parent>
 		<groupId>de.ozgcloud.alfa</groupId>
 		<artifactId>alfa</artifactId>
-		<version>2.5.0-SNAPSHOT</version>
+		<version>2.6.0-SNAPSHOT</version>
 	</parent>
 
     <modelVersion>4.0.0</modelVersion>
diff --git a/alfa-server/pom.xml b/alfa-server/pom.xml
index dedd615e42812369f504d31c950a724870fa2e59..a5838c737484cb9d93fdab6428fefcb2346a9888 100644
--- a/alfa-server/pom.xml
+++ b/alfa-server/pom.xml
@@ -5,7 +5,7 @@
 	<parent>
 		<groupId>de.ozgcloud.alfa</groupId>
 		<artifactId>alfa</artifactId>
-		<version>2.5.0-SNAPSHOT</version>
+		<version>2.6.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-server</artifactId>
diff --git a/alfa-service/pom.xml b/alfa-service/pom.xml
index a80ce1ad1dc25d5da13094959cae6191fb4ed239..386ddc0ae1f3042ab7c919861e5a4f07f85bbdcc 100644
--- a/alfa-service/pom.xml
+++ b/alfa-service/pom.xml
@@ -31,7 +31,7 @@
 	<parent>
 		<groupId>de.ozgcloud.alfa</groupId>
 		<artifactId>alfa</artifactId>
-		<version>2.5.0-SNAPSHOT</version>
+		<version>2.6.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-service</artifactId>
diff --git a/alfa-xdomea/pom.xml b/alfa-xdomea/pom.xml
index bb9c408a2f677ca439cb3bb90dddc3f89263d603..14f186fac07db886a1f45ad8891eb4bdbc47ad8a 100644
--- a/alfa-xdomea/pom.xml
+++ b/alfa-xdomea/pom.xml
@@ -31,7 +31,7 @@
 	<parent>
 		<groupId>de.ozgcloud.alfa</groupId>
 		<artifactId>alfa</artifactId>
-		<version>2.5.0-SNAPSHOT</version>
+		<version>2.6.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-xdomea</artifactId>
diff --git a/pom.xml b/pom.xml
index 3c6690ecdc086c929bf7c031829dedd2801d9f98..13fc91d97b4dc0980ada34c40db9a5449e02303f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,12 +30,12 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-parent</artifactId>
-		<version>4.0.1-SNAPSHOT</version>
+		<version>4.0.1</version>
 	</parent>
 
 	<groupId>de.ozgcloud.alfa</groupId>
 	<artifactId>alfa</artifactId>
-	<version>2.5.0-SNAPSHOT</version>
+	<version>2.6.0-SNAPSHOT</version>
 	<name>Alfa Parent</name>
 	<packaging>pom</packaging>
 
@@ -50,7 +50,7 @@
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
-		<vorgang-manager.version>2.5.0-SNAPSHOT</vorgang-manager.version>
+		<vorgang-manager.version>2.5.0</vorgang-manager.version>
 		<ozgcloud-common-pdf.version>3.0.1</ozgcloud-common-pdf.version>
 		<user-manager.version>2.2.0</user-manager.version>