diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
index e60c95076e98ca10efd497ca91ec35114653f539..91d42f600402a7a65dff32dfb3eefdc6e2eda4aa 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
@@ -977,7 +977,7 @@ describe('BescheidService', () => {
     it('should set create beschied document in progress', () => {
       service.createBescheidDocument();
 
-      expect(service.createBescheidDocumentInProgress$.value.loading).toBeTruthy();
+      expect(service.createBescheidDocumentInProgress$.value).toEqual(commandStateResource);
     });
 
     it('should set upload beschied document in progress loading false', () => {
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
index 90dbfa4346be7cf37beb1daf7bdbcd5c7db348be..e674d629694c1f2c09a2b68ba72b45f1a1a4218a 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
@@ -9,7 +9,7 @@ import {
   CommandResourceService,
   CommandService,
   getEffectedResourceUrl,
-  hasCommandError,
+  notHasCommandError,
   tapOnCommandSuccessfullyDone,
 } from '@alfa-client/command-shared';
 import {
@@ -429,9 +429,8 @@ export class BescheidService {
   private handleCreateBescheidDocumentResponse(
     commandStateResource: StateResource<CommandResource>,
   ): void {
-    if (hasCommandError(commandStateResource.resource)) {
-      this.createBescheidDocumentInProgress$.next(commandStateResource);
-    } else {
+    this.createBescheidDocumentInProgress$.next(commandStateResource);
+    if (notHasCommandError(commandStateResource.resource)) {
       const documentUri: ResourceUri = getEffectedResourceUrl(commandStateResource.resource);
       this.bescheidDocumentUri$.next(documentUri);
       this.loadBescheidDocumentByUri(documentUri);
diff --git a/alfa-client/libs/command-shared/src/lib/command.util.spec.ts b/alfa-client/libs/command-shared/src/lib/command.util.spec.ts
index 7567dbc61f0de2a129af59416b91e373ace7e40d..4928d0b23d0d58d7c3514ee081a29deea8365872 100644
--- a/alfa-client/libs/command-shared/src/lib/command.util.spec.ts
+++ b/alfa-client/libs/command-shared/src/lib/command.util.spec.ts
@@ -21,23 +21,11 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import {
-  createCommandErrorResource,
-  createCommandListResource,
-  createCommandResource,
-} from 'libs/command-shared/test/command';
+import { createCommandErrorResource, createCommandListResource, createCommandResource, } from 'libs/command-shared/test/command';
 import { CommandLinkRel } from './command.linkrel';
 import { CommandErrorMessage } from './command.message';
 import { CommandListResource, CommandResource } from './command.model';
-import {
-  getPendingCommandByOrder,
-  hasCommandError,
-  isConcurrentModification,
-  isDone,
-  isPending,
-  isRevokeable,
-  isSuccessfulDone,
-} from './command.util';
+import { getPendingCommandByOrder, hasCommandError, isConcurrentModification, isDone, isPending, isRevokeable, isSuccessfulDone, notHasCommandError, } from './command.util';
 
 describe('CommandUtil', () => {
   describe('isRevokeable', () => {
@@ -172,4 +160,18 @@ describe('CommandUtil', () => {
       expect(isDoneSuccessfuly).toBeFalsy();
     });
   });
+
+  describe('notHasCommandError', () => {
+    it('should return true', () => {
+      const hasError: boolean = notHasCommandError(createCommandResource());
+
+      expect(hasError).toBeTruthy();
+    });
+
+    it('should return false', () => {
+      const hasError: boolean = notHasCommandError(createCommandErrorResource());
+
+      expect(hasError).toBeFalsy();
+    });
+  });
 });
diff --git a/alfa-client/libs/command-shared/src/lib/command.util.ts b/alfa-client/libs/command-shared/src/lib/command.util.ts
index 2dc64f425d39048734607a64cc12b984a47f3c03..fca9f95c03d57b6b6812d5e760f4c4a4ff0d9c63 100644
--- a/alfa-client/libs/command-shared/src/lib/command.util.ts
+++ b/alfa-client/libs/command-shared/src/lib/command.util.ts
@@ -21,7 +21,7 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { ResourceUri, getEmbeddedResource, getUrl, hasLink } from '@ngxp/rest';
+import { getEmbeddedResource, getUrl, hasLink, ResourceUri } from '@ngxp/rest';
 import { isEmpty, isNil, isObject } from 'lodash-es';
 import { CommandLinkRel, CommandListLinkRel } from './command.linkrel';
 import { CommandErrorMessage } from './command.message';
@@ -47,6 +47,10 @@ export function hasCommandError(commandResource: CommandResource): boolean {
   return hasErrorMessage(commandResource) && !isPending(commandResource);
 }
 
+export function notHasCommandError(commandResource: CommandResource): boolean {
+  return !hasCommandError(commandResource);
+}
+
 export function getPendingCommandByOrder(
   pendingCommands: CommandListResource,
   commandOrder: any[],
diff --git a/alfa-client/libs/design-system/src/lib/form/text-input/text-input.component.ts b/alfa-client/libs/design-system/src/lib/form/text-input/text-input.component.ts
index 143fd2b021b86b2ab00e654a735b6f2d79de4465..086494defe0ede679d49d6cd509ba4256399f72a 100644
--- a/alfa-client/libs/design-system/src/lib/form/text-input/text-input.component.ts
+++ b/alfa-client/libs/design-system/src/lib/form/text-input/text-input.component.ts
@@ -28,10 +28,7 @@ type TextInputVariants = VariantProps<typeof textInputVariants>;
   template: `
     <div>
       <label [for]="id" class="text-md mb-2 block font-medium text-text"
-        >{{ label
-        }}<ng-container *ngIf="required"
-          ><i aria-hidden="true">*</i><i class="sr-only">(erforderlich)</i></ng-container
-        ></label
+        >{{ label }}<ng-container *ngIf="required"><i aria-hidden="true">*</i></ng-container></label
       >
       <div class="mt-2">
         <input
@@ -41,6 +38,7 @@ type TextInputVariants = VariantProps<typeof textInputVariants>;
           [ngClass]="textInputVariants({ variant })"
           [placeholder]="placeholder"
           [autocomplete]="autocomplete"
+          [required]="required"
         />
       </div>
       <ng-content select="[error]"></ng-content>
diff --git a/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts b/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts
index e449fe77bf900edd3c377d66a5781398cffa4dfc..9574b15496bbcf1cff81387b35383f480aaa0596 100644
--- a/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts
+++ b/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts
@@ -27,10 +27,7 @@ type TextareaVariants = VariantProps<typeof textareaVariants>;
   template: `
     <div class="mt-2">
       <label [for]="id" class="text-md mb-2 block font-medium text-text"
-        >{{ label
-        }}<ng-container *ngIf="required"
-          ><i aria-hidden="true">*</i><i class="sr-only">(erforderlich)</i></ng-container
-        ></label
+        >{{ label }}<ng-container *ngIf="required"><i aria-hidden="true">*</i></ng-container></label
       >
       <textarea
         [id]="id"
@@ -39,6 +36,7 @@ type TextareaVariants = VariantProps<typeof textareaVariants>;
         [ngClass]="textareaVariants({ variant })"
         [placeholder]="placeholder"
         [autocomplete]="autocomplete"
+        [required]="required"
       ></textarea>
       <ng-content select="[error]"></ng-content>
     </div>
diff --git a/alfa-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.html b/alfa-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.html
index 4425e0e321397ec41da55df4e01bedb2dc04f172..e7bf47e035ffda11896c113aba0a0450381f0796 100644
--- a/alfa-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.html
+++ b/alfa-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.html
@@ -29,6 +29,7 @@
     [formControlName]="formServiceClass.FIELD_EMAIL"
     autocomplete="email"
     placeholder="E-Mail Adresse"
+    [required]="true"
   >
   </ozgcloud-text-editor>
 
@@ -36,6 +37,7 @@
     label="Passwort"
     [formControlName]="formServiceClass.FIELD_PASSWORD"
     placeholder="Passwort für die Verschlüsselung"
+    [required]="true"
   >
   </ozgcloud-text-editor>
 
diff --git a/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.html b/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.html
index da3b6072530f0402bea3dadf7dac41f97712d9ed..02cf64660bd972c3b2a2b19a7cf30b04c58194c7 100644
--- a/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.html
+++ b/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.html
@@ -24,7 +24,11 @@
 
 -->
 <form class="form" [formGroup]="formService.form">
-  <ozgcloud-textarea-editor [formControlName]="formServiceClass.TEXT" label="Kommentar">
+  <ozgcloud-textarea-editor
+    [formControlName]="formServiceClass.TEXT"
+    label="Kommentar"
+    [required]="true"
+  >
   </ozgcloud-textarea-editor>
 
   <alfa-binary-file-attachment-container
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.html b/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.html
index c56d5eeb8514ed4295ffba4817c573e304009ffb..cea292daf1e3bfe942599923ec2cba8083a7c3ce 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.html
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.html
@@ -33,12 +33,15 @@
     [formControlName]="formServiceClass.FIELD_SUBJECT"
     label="Betreff"
     [autoFocus]="true"
+    [required]="true"
   >
   </ozgcloud-text-editor>
   <ozgcloud-textarea-editor
     [formControlName]="formServiceClass.FIELD_MAIL_BODY"
     label="Text"
-    class="message-editor"
+    class="message-editor mt-3"
+    [autoFocus]="true"
+    [required]="true"
   >
   </ozgcloud-textarea-editor>
 
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.scss b/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.scss
index d72717d84ac61991ea6146183c7800a5ed773fae..5b22d572e2a37eb567ba59013f2fc06473826ff6 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.scss
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-form/postfach-mail-form.component.scss
@@ -38,15 +38,8 @@
 }
 
 .message-editor {
-  margin-top: -30px;
+  margin-top: -20px;
   display: block;
-
-  ::ng-deep {
-    label,
-    .mat-lable {
-      visibility: hidden;
-    }
-  }
 }
 
 .receiver {
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.html b/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.html
index 3ca3c2d4caaf053deff6cf5101213c93be36e68d..6f484f807eca85ab9ccc7bc42c43c12c9bdc850f 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.html
+++ b/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.html
@@ -29,6 +29,7 @@
   <input
     #autocompleteInput
     [attr.data-test-id]="(label | convertForDataTest) + '-autocomplete-input'"
+    [required]="required"
     type="text"
     matInput
     [matAutocomplete]="auto"
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.ts b/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.ts
index 1d1a10a12d85f394d6702db756abb6bb81aad810..814dc618b5a9b4cd8d9d0e9fd1f7690110e7d495 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.ts
+++ b/alfa-client/libs/ui/src/lib/ui/editor/autocomplete-editor/autocomplete-editor.component.ts
@@ -45,6 +45,7 @@ export class AutocompleteEditorComponent
 {
   @Input() label: string;
   @Input() values: Selectable[] = [];
+  @Input() required: boolean = false;
 
   @Output() onKeyUp: EventEmitter<void> = new EventEmitter();
   @Output() onOptionSelected: EventEmitter<Selectable> = new EventEmitter();
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html b/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html
index dd35f14177f9f6b6de7b665da4c71f0ec6bb5581..589e1679db0ad9e505aa9b98a1c981b366e5abfb 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html
+++ b/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html
@@ -30,6 +30,7 @@
     [matDatepicker]="picker"
     [formControl]="fieldControl"
     (blur)="touch()"
+    [required]="required"
     [attr.data-test-id]="(label | convertForDataTest) + '-date-input'"
     (dateInput)="inputEvent($event)"
     (blur)="onBlur()"
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.ts b/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.ts
index b93828d71bece9019d6ce554f0e93709114b4bc6..27619ab5f03eb534053f871ae817dcacd07f5fe3 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.ts
+++ b/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.ts
@@ -34,6 +34,7 @@ import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstra
 })
 export class DateEditorComponent extends FormControlEditorAbstractComponent {
   @Input() label: string;
+  @Input() required: boolean = false;
 
   inputEvent(event: MatDatepickerInputEvent<Date>): void {
     this.onChange(event.value);
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.html b/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.html
index 9087fe250f23f35de30bf35cd57e9dcdc014bc57..bcf6e536c27a4a13aab0a99e43c2c155920bc241 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.html
+++ b/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.html
@@ -39,6 +39,7 @@
       [autocomplete]="autocomplete"
       [readonly]="readOnly"
       (blur)="touch()"
+      [required]="required"
       [attr.data-test-id]="(label | convertForDataTest) + '-text-input'"
       [class.with-clear-button]="showClearButton$ | async"
     />
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.ts b/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.ts
index a64326dcbad46ccca353328cf70477fe653e4b29..017dab82a8ba476c585b0af20b9f7c3080e0ff7b 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.ts
+++ b/alfa-client/libs/ui/src/lib/ui/editor/text-editor/text-editor.component.ts
@@ -21,11 +21,11 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
-import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component';
-import { map, Observable, startWith } from 'rxjs';
 import { hasContent } from '@alfa-client/tech-shared';
+import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
 import { SubscriptSizing } from '@angular/material/form-field';
+import { Observable, map, startWith } from 'rxjs';
+import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component';
 
 @Component({
   selector: 'ozgcloud-text-editor',
@@ -45,7 +45,8 @@ export class TextEditorComponent
   @Input() appearance: 'outline' | 'fill' = 'fill';
   @Input() readOnly: boolean;
   @Input() autoFocus: boolean;
-  @Input() clearable = false;
+  @Input() clearable: boolean = false;
+  @Input() required: boolean = false;
   @Input() subscriptSizing: SubscriptSizing = 'fixed';
 
   showClearButton$: Observable<boolean>;
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.html b/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.html
index c40765078be75b0b8a038ffa7896f82dafed9a54..cf3135707e7a986230e2dc9957326bb1766a6a88 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.html
+++ b/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.html
@@ -23,7 +23,7 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<mat-form-field [appearance]="appearance">
+<mat-form-field [appearance]="appearance" [floatLabel]="autoFocus ? 'always' : 'auto'">
   <mat-label>{{ label }}</mat-label>
 
   <textarea
@@ -32,6 +32,7 @@
     matInput
     cdkTextareaAutosize
     [formControl]="fieldControl"
+    [required]="required"
     [attr.data-test-id]="(label | convertForDataTest) + '-textarea-input'"
     (blur)="touch()"
   ></textarea>
diff --git a/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.ts b/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.ts
index b5c876ac008f4fa926459a7cefeba05a185b657c..ff008c8ba924f7ff54291ecf8f0130bda01aeea5 100644
--- a/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.ts
+++ b/alfa-client/libs/ui/src/lib/ui/editor/textarea-editor/textarea-editor.component.ts
@@ -39,6 +39,8 @@ export class TextAreaEditorComponent
   @Input() placeholder: string;
   @Input() label: string = '';
   @Input() appearance: 'outline' | 'fill' = 'fill';
+  @Input() required: boolean = false;
+  @Input() autoFocus: boolean = false;
 
   ngAfterViewInit() {
     this.autosize.resizeToFitContent(true);
diff --git a/alfa-client/libs/user-profile/src/lib/user-profile-search-container/user-profile-search/user-profile-search.component.html b/alfa-client/libs/user-profile/src/lib/user-profile-search-container/user-profile-search/user-profile-search.component.html
index e88bfb77885c00c29ac5eb6955ca5a63d8f18211..156bc444e33399d0b30b983eb4a36e9144d180d2 100644
--- a/alfa-client/libs/user-profile/src/lib/user-profile-search-container/user-profile-search/user-profile-search.component.html
+++ b/alfa-client/libs/user-profile/src/lib/user-profile-search-container/user-profile-search/user-profile-search.component.html
@@ -27,6 +27,7 @@
   <ozgcloud-autocomplete-editor
     data-test-id="user-search"
     label="Bearbeiter"
+    [required]="true"
     [formControlName]="formServiceClass.SEARCH_FIELD"
     [values]="searchedUserProfiles.resource"
     (onKeyUp)="onKeyUp()"
diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html
index be0c599a5b7e04df8b03cbe0c51568aed474e709..e86356acece82f9d84a903d8a71d0181ffc5c6bf 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html
@@ -23,7 +23,7 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<ng-container *ngIf="vorgang | hasLink: linkRel.ABSCHLIESSEN">
+<ng-container *ngIf="isVisible">
   <ozgcloud-stroked-button-with-spinner
     *ngIf="!showAsIconButton"
     data-test-id="abschliessen-button"
diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts
index 4d98aa579e9927feab12c1474ebc7dfaddb8e926..53f7eb0cbc0b54c8a83a4bba21443ce3377cd2b8 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts
@@ -22,22 +22,10 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { CommandResource } from '@alfa-client/command-shared';
-import {
-  HasLinkPipe,
-  StateResource,
-  createEmptyStateResource,
-  createStateResource,
-} from '@alfa-client/tech-shared';
+import { createEmptyStateResource, createStateResource, HasLinkPipe, StateResource, } from '@alfa-client/tech-shared';
 import { mock } from '@alfa-client/test-utils';
-import {
-  IconButtonWithSpinnerComponent,
-  OzgcloudStrokedButtonWithSpinnerComponent,
-} from '@alfa-client/ui';
-import {
-  VorgangCommandService,
-  VorgangStatus,
-  VorgangWithEingangLinkRel,
-} from '@alfa-client/vorgang-shared';
+import { IconButtonWithSpinnerComponent, OzgcloudStrokedButtonWithSpinnerComponent, } from '@alfa-client/ui';
+import { VorgangCommandService, VorgangWithEingangLinkRel, VorgangWithEingangResource, } from '@alfa-client/vorgang-shared';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { createCommandResource } from 'libs/command-shared/test/command';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
@@ -126,7 +114,7 @@ describe('AbschliessenButtonComponent', () => {
     });
 
     it('should be hidden', () => {
-      component.vorgang = createVorgangWithEingangResource();
+      component.isVisible = false;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenButton);
@@ -135,9 +123,7 @@ describe('AbschliessenButtonComponent', () => {
     });
 
     it('should be visible', () => {
-      component.vorgang = createVorgangWithEingangResource([
-        VorgangWithEingangLinkRel.ABSCHLIESSEN,
-      ]);
+      component.isVisible = true;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenButton);
@@ -153,7 +139,7 @@ describe('AbschliessenButtonComponent', () => {
     });
 
     it('should be hidden', () => {
-      component.vorgang = createVorgangWithEingangResource();
+      component.isVisible = false;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenIconButton);
@@ -161,11 +147,8 @@ describe('AbschliessenButtonComponent', () => {
       expect(buttonElement).not.toBeInstanceOf(HTMLElement);
     });
 
-
     it('should be visible', () => {
-      component.vorgang = createVorgangWithEingangResource([
-        VorgangWithEingangLinkRel.ABSCHLIESSEN,
-      ]);
+      component.isVisible = true;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenIconButton);
@@ -173,4 +156,58 @@ describe('AbschliessenButtonComponent', () => {
       expect(buttonElement).toBeInstanceOf(HTMLElement);
     });
   });
+
+  describe('set vorgang', () => {
+    it('should set vorgang with eingang resource', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
+
+      component.vorgang = vorgang;
+
+      expect(component.vorgangWithEingangResource).toBe(vorgang);
+    });
+
+    it('should set visible to true', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+        VorgangWithEingangLinkRel.ABSCHLIESSEN,
+      ]);
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeTruthy();
+    });
+
+    it('should set visible to false', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeFalsy();
+    });
+
+    it('should set visible to false if have createBescheidDraft link', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+        VorgangWithEingangLinkRel.ABSCHLIESSEN,
+        VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
+      ]);
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeFalsy();
+    });
+
+    it('should set visible to false if have bescheidDraft link', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+        VorgangWithEingangLinkRel.ABSCHLIESSEN,
+        VorgangWithEingangLinkRel.BESCHEID_DRAFT,
+      ]);
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeFalsy();
+    });
+  });
 });
diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts
index 15df48ad2b497eed92ec4dfd36278e18fd3e506f..891dc472cdf377bc9ee28125b925d6a1bcd2dacf 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts
@@ -22,13 +22,10 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { CommandResource } from '@alfa-client/command-shared';
-import { StateResource, createEmptyStateResource } from '@alfa-client/tech-shared';
-import {
-  VorgangCommandService,
-  VorgangWithEingangLinkRel,
-  VorgangWithEingangResource,
-} from '@alfa-client/vorgang-shared';
+import { createEmptyStateResource, notHasLink, StateResource } from '@alfa-client/tech-shared';
+import { VorgangCommandService, VorgangWithEingangLinkRel, VorgangWithEingangResource, } from '@alfa-client/vorgang-shared';
 import { Component, Input, OnInit } from '@angular/core';
+import { hasLink } from '@ngxp/rest';
 import { Observable, of } from 'rxjs';
 
 @Component({
@@ -37,9 +34,19 @@ import { Observable, of } from 'rxjs';
   styleUrls: ['./abschliessen-button.component.scss'],
 })
 export class AbschliessenButtonComponent implements OnInit {
-  @Input() vorgang: VorgangWithEingangResource;
+  @Input() set vorgang(vorgang: VorgangWithEingangResource) {
+    this.vorgangWithEingangResource = vorgang;
+    this.isVisible =
+      hasLink(vorgang, VorgangWithEingangLinkRel.ABSCHLIESSEN) &&
+      notHasLink(vorgang, VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT) &&
+      notHasLink(vorgang, VorgangWithEingangLinkRel.BESCHEID_DRAFT);
+  }
+
   @Input() showAsIconButton: boolean = false;
 
+  public isVisible: boolean = false;
+  vorgangWithEingangResource: VorgangWithEingangResource;
+
   commandStateResource$: Observable<StateResource<CommandResource>> = of(
     createEmptyStateResource<CommandResource>(),
   );
@@ -53,6 +60,8 @@ export class AbschliessenButtonComponent implements OnInit {
   }
 
   public abschliessen(): void {
-    this.commandStateResource$ = this.vorgangCommandService.abschliessen(this.vorgang);
+    this.commandStateResource$ = this.vorgangCommandService.abschliessen(
+      this.vorgangWithEingangResource,
+    );
   }
 }
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html
index 8b253050b328a8bf63b1c175113678ef8cfd15e7..ad1704f9c19a82c2a3fe30cb866eb98730f4ff69 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html
@@ -22,6 +22,7 @@
       [formControlName]="formServiceClass.FIELD_BESCHIEDEN_AM"
       label="am"
       aria-label="Bescheiddatum"
+      [required]="true"
     >
     </ozgcloud-date-editor>
   </div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html
index 3eec0104f947b808750585d60d7a027d8fc2f111..5e02a4c17739dce5e4be8ce0ae9547b23d9565a2 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.html
@@ -7,6 +7,7 @@
   <alfa-vorgang-detail-bescheiden-antrag-bescheiden></alfa-vorgang-detail-bescheiden-antrag-bescheiden>
   <alfa-vorgang-detail-bescheiden-weiter-button
     (clickEmitter)="changeActiveStep(2)"
+    [submitResource]="submitResource"
   ></alfa-vorgang-detail-bescheiden-weiter-button>
 </alfa-vorgang-detail-bescheiden-step-content>
 
@@ -22,6 +23,7 @@
   ></alfa-vorgang-detail-bescheiden-dokumente-hinzufuegen>
   <alfa-vorgang-detail-bescheiden-weiter-button
     (clickEmitter)="changeActiveStep(3)"
+    [submitResource]="submitResource"
   ></alfa-vorgang-detail-bescheiden-weiter-button>
 </alfa-vorgang-detail-bescheiden-step-content>
 
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts
index a05c072bc6c488d8b4948180c7f7ebefb58de08a..ce42b5dcd7153c3e1e12b0eef65028a1586778ff 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts
@@ -1,4 +1,10 @@
-import { HttpError, StateResource, hasStateResourceError, isLoaded } from '@alfa-client/tech-shared';
+import {
+  HttpError,
+  StateResource,
+  createEmptyStateResource,
+  hasStateResourceError,
+  isLoaded,
+} from '@alfa-client/tech-shared';
 import {
   VorgangService,
   VorgangWithEingangLinkRel,
@@ -6,7 +12,7 @@ import {
 } from '@alfa-client/vorgang-shared';
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { Resource, hasLink } from '@ngxp/rest';
-import { BehaviorSubject, Observable, combineLatest, filter, first, map } from 'rxjs';
+import { BehaviorSubject, Observable, combineLatest, filter, first, map, tap } from 'rxjs';
 import { BescheidenFormService } from '../../bescheiden.formservice';
 
 @Component({
@@ -24,6 +30,8 @@ export class VorgangDetailBescheidenStepsContentComponent implements OnInit {
 
   showBescheidErstellungUeberspringen$: Observable<boolean>;
 
+  submitResource: StateResource<Resource | HttpError> = createEmptyStateResource();
+
   constructor(
     private readonly vorgangService: VorgangService,
     private formService: BescheidenFormService,
@@ -45,7 +53,11 @@ export class VorgangDetailBescheidenStepsContentComponent implements OnInit {
     if (this.canChangeTo(step)) {
       this.formService
         .submit()
-        .pipe(filter(this.noError), first())
+        .pipe(
+          tap((resource: StateResource<Resource | HttpError>) => (this.submitResource = resource)),
+          filter(this.noError),
+          first(),
+        )
         .subscribe(() => {
           this.formService.setActiveStep(step);
           this.activeStepChange.emit(step);
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html
index 55a9f67956faa09ff08e2e0849134c690a73059c..775963a1509562d11eda1d3f82d7d742a7850494 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.html
@@ -1,10 +1,11 @@
-<ods-button
+<ods-button-with-spinner
   *ngIf="showButton$ | async"
   (clickEmitter)="clickEmitter.emit()"
+  [stateResource]="submitResource"
   variant="primary"
   size="medium"
   class="mt-8 flex"
   dataTestId="bescheid-weiter-button"
   text="Weiter"
 >
-</ods-button>
+</ods-button-with-spinner>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts
index f08201eec71c4d281c3ed90f759dba339080d548..5e89e7dd34f564986e2d2b48f78919d18c091041 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts
@@ -1,8 +1,13 @@
 import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared';
-import { isLoaded } from '@alfa-client/tech-shared';
+import {
+  HttpError,
+  StateResource,
+  createEmptyStateResource,
+  isLoaded,
+} from '@alfa-client/tech-shared';
 import { VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
-import { Component, EventEmitter, OnInit, Output } from '@angular/core';
-import { hasLink } from '@ngxp/rest';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { Resource, hasLink } from '@ngxp/rest';
 import { Observable, filter, map, merge } from 'rxjs';
 import { BescheidenFormService } from '../../bescheiden.formservice';
 
@@ -11,6 +16,7 @@ import { BescheidenFormService } from '../../bescheiden.formservice';
   templateUrl: './vorgang-detail-bescheiden-weiter-button.component.html',
 })
 export class VorgangDetailBescheidenWeiterButtonComponent implements OnInit {
+  @Input() submitResource: StateResource<Resource | HttpError> = createEmptyStateResource();
   @Output() clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
 
   showButton$: Observable<boolean>;
diff --git a/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.html b/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.html
index c90498fb6fd7f0555c399ffc1403cbca28f01d6c..aa62e66b883fe1b7f226db4b2a03cce01481a198 100644
--- a/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.html
+++ b/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.html
@@ -24,7 +24,11 @@
 
 -->
 <form class="form" [formGroup]="formService.form">
-  <ozgcloud-text-editor label="Betreff" [formControlName]="formServiceClass.FIELD_BETREFF">
+  <ozgcloud-text-editor
+    label="Betreff"
+    [formControlName]="formServiceClass.FIELD_BETREFF"
+    [required]="true"
+  >
   </ozgcloud-text-editor>
 
   <ozgcloud-textarea-editor
@@ -33,7 +37,12 @@
   >
   </ozgcloud-textarea-editor>
 
-  <ozgcloud-date-editor class="date" label="Frist" [formControlName]="formServiceClass.FIELD_FRIST">
+  <ozgcloud-date-editor
+    class="date"
+    label="Frist"
+    [formControlName]="formServiceClass.FIELD_FRIST"
+    [required]="true"
+  >
   </ozgcloud-date-editor>
 
   <alfa-binary-file-attachment-container
diff --git a/alfa-client/pom.xml b/alfa-client/pom.xml
index 854ec00d432ea1ebea24ad59668c162de22bcf44..111a094ca72b201db206c3d2f22c414e4846fd07 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.8.0-SNAPSHOT</version>
+		<version>2.9.0-SNAPSHOT</version>
 	</parent>
 
     <modelVersion>4.0.0</modelVersion>
diff --git a/alfa-server/pom.xml b/alfa-server/pom.xml
index ee48af6d0f7aa1b0f804250334a43ffde0780668..4849872597179b20c4537e9e56e66a8d5782e6b3 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.8.0-SNAPSHOT</version>
+		<version>2.9.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-server</artifactId>
diff --git a/alfa-service/pom.xml b/alfa-service/pom.xml
index 9353c1a1c507cd69c337a40f1293ebffe8412017..9bbb0e40bbffdc99b6b808f83702bb315758a224 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.8.0-SNAPSHOT</version>
+		<version>2.9.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-service</artifactId>
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java
index b6524e0b584102bd93baebf1e6d489e994056a98..1977b5ffb63dbf495578eeac0ebce27d6d7a4af5 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java
@@ -15,6 +15,8 @@ import de.ozgcloud.alfa.bescheid.BescheidController.BescheidByVorgangController;
 import de.ozgcloud.alfa.common.FeatureToggleProperties;
 import de.ozgcloud.alfa.common.ModelBuilder;
 import de.ozgcloud.alfa.common.command.CommandController.CommandByRelationController;
+import de.ozgcloud.alfa.common.user.CurrentUserService;
+import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.vorgang.Vorgang;
 import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
 import lombok.RequiredArgsConstructor;
@@ -29,11 +31,12 @@ class BescheidVorgangProcessor implements RepresentationModelProcessor<EntityMod
 
 	private final BescheidService bescheidService;
 	private final FeatureToggleProperties featureToggleProperties;
+	private final CurrentUserService currentUserService;
 
 	@Override
 	public EntityModel<VorgangWithEingang> process(EntityModel<VorgangWithEingang> model) {
 		var vorgang = model.getContent();
-		if (Objects.isNull(vorgang)) {
+		if (Objects.isNull(vorgang) || currentUserService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)) {
 			return model;
 		}
 		return ModelBuilder.fromModel(model)
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java
index 81ddfb139f273627653798ac0a8368ce32f6ab39..f4a517c4052a3658f8ecfc3d81e5ac5a6593c849 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java
@@ -95,8 +95,8 @@ public class CurrentUserService {
 
 	public Optional<UserId> findUserId() {
 		return Optional.ofNullable(getSingleClaimValue(ATTRIBUTE_NAME_USER_ID)
-				.map(UserId::from)
-				.orElseGet(this::getInternalId))
+						.map(UserId::from)
+						.orElseGet(this::getInternalId))
 				.filter(Objects::nonNull);
 	}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java
index 510a3f2a395f726aabb88c0c29998bd89508f462..ec24740d58cd87f75c86a04801232b5076fe03f3 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java
@@ -22,6 +22,8 @@ import org.springframework.hateoas.Link;
 
 import de.ozgcloud.alfa.common.FeatureToggleProperties;
 import de.ozgcloud.alfa.common.UserProfileUrlProvider;
+import de.ozgcloud.alfa.common.user.CurrentUserService;
+import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.vorgang.Vorgang;
 import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
 import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
@@ -35,8 +37,11 @@ class BescheidVorgangProcessorTest {
 	@Spy
 	@InjectMocks
 	private BescheidVorgangProcessor processor;
+
 	@Mock
 	private BescheidService service;
+	@Mock
+	private CurrentUserService currentUserService;
 
 	@Mock
 	private FeatureToggleProperties featureToggleProperties;
@@ -53,6 +58,16 @@ class BescheidVorgangProcessorTest {
 			assertThat(processedModel).isEqualTo(inputModel);
 		}
 
+		@Test
+		void shouldReturnTheSameModelWhenUserIsEinheitlicherAnsprechpartner() {
+			var inputModel = EntityModel.of(VorgangWithEingangTestFactory.create());
+			when(currentUserService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)).thenReturn(true);
+
+			var processedModel = processor.process(inputModel);
+
+			assertThat(processedModel).isEqualTo(inputModel);
+		}
+
 		@Test
 		void shouldCallExistsBescheid() {
 			initUserProfileUrlProvider(new UserProfileUrlProvider());
diff --git a/alfa-xdomea/pom.xml b/alfa-xdomea/pom.xml
index b572f4474ff138e8f337e93e38dff8514a487b72..d81aae8ff596383dbbab518d7544a26e67bdc032 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.8.0-SNAPSHOT</version>
+		<version>2.9.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-xdomea</artifactId>
diff --git a/pom.xml b/pom.xml
index 4be17f3b766715348c9d8a217b700df8b37e4b59..eccaf74d7de377ecf61443d8dfd145a1c0e9852b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 
 	<groupId>de.ozgcloud.alfa</groupId>
 	<artifactId>alfa</artifactId>
-	<version>2.8.0-SNAPSHOT</version>
+	<version>2.9.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.8.0-SNAPSHOT</vorgang-manager.version>
+		<vorgang-manager.version>2.8.0</vorgang-manager.version>
 		<nachrichten-manager.version>2.7.0</nachrichten-manager.version>
 		<ozgcloud-common-pdf.version>3.0.1</ozgcloud-common-pdf.version>
 		<user-manager.version>2.2.0</user-manager.version>