diff --git a/alfa-client/libs/design-system/src/lib/attachment/attachment.component.ts b/alfa-client/libs/design-system/src/lib/attachment/attachment.component.ts
index 3e3b1d8cb09d1569bd528d820446c39c310a293c..26b8e0b77783d3dd5f6de9ef1eecbdc5c7db1220 100644
--- a/alfa-client/libs/design-system/src/lib/attachment/attachment.component.ts
+++ b/alfa-client/libs/design-system/src/lib/attachment/attachment.component.ts
@@ -24,12 +24,15 @@ import { SpinnerIconComponent } from '../icons/spinner-icon/spinner-icon.compone
       <ods-spinner-icon *ngIf="isLoading && !isError" size="large" />
     </div>
     <div class="flex grow flex-col items-start break-all text-start text-text">
-      <p *ngIf="!isError && caption" class="text-sm">
+      <p *ngIf="!isError && !isLoading && caption" class="text-sm">
         {{ caption }}
       </p>
       <p *ngIf="isError && errorCaption" class="text-sm text-error">
         {{ errorCaption }}
       </p>
+      <p *ngIf="isLoading && loadingCaption" class="text-sm">
+        {{ loadingCaption }}
+      </p>
       <p *ngIf="description && !isError" class="text-xs text-text/65">
         {{ description }}
       </p>
@@ -43,6 +46,7 @@ import { SpinnerIconComponent } from '../icons/spinner-icon/spinner-icon.compone
 export class AttachmentComponent {
   @Input() caption: string = '';
   @Input() errorCaption: string = '';
+  @Input() loadingCaption: string = '';
   @Input() fileType: string = '';
   @Input() description = '';
   @Input() isLoading: boolean = false;
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html
index e42f76100f8f778f47346a8974c32ea718d21bb9..fc9bcf1ed04f5df8d10a3a92d1c6d611d827574f 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html
@@ -20,12 +20,10 @@
     <ods-attachment
       data-test-id="attachment-upload-in-progress"
       *ngIf="uploadFileInProgress.loading || uploadFileInProgress.error"
-      [caption]="
-        uploadFileInProgress.error ? 'Fehler beim Hochladen' : uploadFileInProgress.fileName
-      "
+      [loadingCaption]="uploadFileInProgress.fileName"
+      errorCaption="Fehler beim Hochladen"
       [error]="uploadFileInProgress.error"
       description="Anhang wird hochgeladen"
-      fileType=""
       [isLoading]="uploadFileInProgress.loading"
     ></ods-attachment>
   </ng-container>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html
index 3148cf1d0d907496b5b4f9164e7c1621a1aa3953..a89c65186da52532a6f73829e58afaaaf65703cd 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html
@@ -17,8 +17,11 @@
   </ng-container>
   <ods-attachment
     *ngIf="uploadBescheidDocumentInProgress.loading || uploadBescheidDocumentInProgress.error"
-    [caption]="attachmentCaption"
-    [attr.data-test-id]="attachmentDataTestId"
+    errorCaption="Fehler beim Hochladen"
+    [loadingCaption]="uploadBescheidDocumentInProgress.fileName"
+    [attr.data-test-id]="
+      'upload-bescheid-document-error-' + !!uploadBescheidDocumentInProgress.error
+    "
     [isLoading]="uploadBescheidDocumentInProgress.loading"
     [error]="uploadBescheidDocumentInProgress.error"
   ></ods-attachment>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts
index 5bd0f8b68ece0d217355d957b040611c03259381..2f71e2de6a3ef57174f129655ba0dd7f1c8ddab5 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts
@@ -17,7 +17,7 @@ describe('VorgangDetailBescheidenResultDokumentComponent', () => {
   let fixture: ComponentFixture<VorgangDetailBescheidenResultDokumentComponent>;
 
   const createBescheidDocumentError: string = getDataTestIdOf('create-bescheid-document-error');
-  const uploadBescheidDocumentError: string = getDataTestIdOf('upload-bescheid-document-error');
+  const uploadBescheidDocumentError: string = getDataTestIdOf('upload-bescheid-document-error-true');
   const missingBescheidDocumentErrorMessage: string = getDataTestIdOf(
     'missing-bescheid-document-error-message',
   );
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts
index f6fc855c98546cb0a9d29ac6dbc03f0ddfc62d41..f46d2cbd1d7aa2719a19b7f73ae55e1efb23945e 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts
@@ -25,30 +25,6 @@ export class VorgangDetailBescheidenResultDokumentComponent {
 
   @Output() deleteFile: EventEmitter<void> = new EventEmitter<void>();
 
-  get attachmentCaption() {
-    if (this.uploadBescheidDocumentInProgress.loading) {
-      return 'Bescheiddokument wird hochgeladen';
-    }
-
-    if (this.uploadBescheidDocumentInProgress.error) {
-      return 'Fehler beim Hochladen';
-    }
-
-    return this.bescheidDocumentFile.resource.name;
-  }
-
-  get attachmentDataTestId() {
-    if (this.uploadBescheidDocumentInProgress.loading) {
-      return 'upload-bescheid-document-loading';
-    }
-
-    if (this.uploadBescheidDocumentInProgress.error) {
-      return 'upload-bescheid-document-error';
-    }
-
-    return 'upload-bescheid-document-file';
-  }
-
   constructor(private bescheidService: BescheidService) {}
 
   handleBescheidDocument(bescheid: BescheidResource): void {