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 19cd002222b625f513309a5bf98a72aa9a982e7f..787659b0cf6b97dd6c777b83b9703f2d47184109 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
@@ -1074,13 +1074,29 @@ describe('BescheidService', () => {
   });
 
   describe('exists bescheid draft', () => {
-    it('should call resource service', () => {
-      service.bescheidDraftService.exists = jest.fn();
+    beforeEach(() => {
+      service.bescheidDraftService.exists = jest.fn().mockReturnValue(of(true));
+    });
 
+    it('should call resource service', () => {
       service.existsBescheidDraft();
 
       expect(service.bescheidDraftService.exists).toHaveBeenCalled();
     });
+
+    it('should return true if exists', () => {
+      const exists: boolean = service.existsBescheidDraft();
+
+      expect(exists).toBeTruthy();
+    });
+
+    it('should return false if not exists', () => {
+      service.bescheidDraftService.exists = jest.fn().mockReturnValue(of(false));
+
+      const exists: boolean = service.existsBescheidDraft();
+
+      expect(exists).toBeFalsy();
+    });
   });
 
   describe('bescheidVerwerfen', () => {
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 51939bd89281d0a5e4c2971c026cebf8f6ef34ce..dc682d6238b3bc2325ac3a09d505843544c13aa7 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
@@ -42,6 +42,7 @@ import {
   map,
   startWith,
   switchMap,
+  take,
 } from 'rxjs';
 import {
   ListResourceServiceConfig,
@@ -447,7 +448,12 @@ export class BescheidService {
   }
 
   public existsBescheidDraft(): boolean {
-    return this.bescheidDraftService.exists();
+    let exists: boolean;
+    this.bescheidDraftService
+      .exists()
+      .pipe(take(1))
+      .subscribe((existsDraft: boolean) => (exists = existsDraft));
+    return exists;
   }
 
   public bescheidVerwerfen(): Observable<StateResource<CommandResource>> {
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 8c6b5ae5092d8b62833fbd72d357ec1f48801c40..797f3dd37cff70809fffaee12dd5af9fd8bec528 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
@@ -11,6 +11,7 @@ import { createDummyResource } from '../../../test/resource';
 import { HttpError, ProblemDetail } from '../tech.model';
 import { LinkRelationName, ResourceServiceConfig } from './resource.model';
 import { ResourceRepository } from './resource.repository';
+import { ResourceService } from './resource.service';
 import {
   StateResource,
   createEmptyStateResource,
@@ -18,7 +19,6 @@ import {
   createStateResource,
 } from './resource.util';
 
-import { ResourceService } from './resource.service';
 import * as ResourceUtil from './resource.util';
 
 describe('ResourceService', () => {
@@ -491,20 +491,22 @@ describe('ResourceService', () => {
   });
 
   describe('exists', () => {
-    it('should return true', () => {
+    it('should return true', (done) => {
       service.updateStateResource(createDummyResource());
 
-      const exists = service.exists();
-
-      expect(exists).toBeTruthy();
+      service.exists().subscribe((response) => {
+        expect(response).toBeTruthy();
+        done();
+      });
     });
 
-    it('should return false', () => {
+    it('should return false', (done) => {
       service.updateStateResource(null);
 
-      const exists = service.exists();
-
-      expect(exists).toBeFalsy();
+      service.exists().subscribe((response) => {
+        expect(response).toBeFalsy();
+        done();
+      });
     });
   });
 });
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 b87ef49e8d89a71752b6cd6b793aa6d6a4bb05c0..dec67942889bebdabac69a7b09ce67c20f0f8db0 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
@@ -185,10 +185,9 @@ export abstract class ResourceService<B extends Resource, T extends Resource> {
     throwErrorOn(!this.canDelete(), 'No delete link exists on current stateresource.');
   }
 
-  /**
-   * @deprecated
-   */
-  public exists(): boolean {
-    return isNotNull(this.stateResource.value.resource);
+  public exists(): Observable<boolean> {
+    return this.stateResource
+      .asObservable()
+      .pipe(map((stateResource: StateResource<T>) => stateResource.loaded));
   }
 }
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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts
index 95a724082957ee7c10eaf5501182e64a123b3129..b49b42bc215c5390a8a9a3acd8a95e6493cd2830 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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts
@@ -20,7 +20,7 @@ export class VorgangDetailBescheidenAbbrechenDialogComponent {
     private readonly formService: BescheidenFormService,
   ) {}
 
-  public saveBescheidDraft() {
+  public saveBescheidDraft(): void {
     this.saveDraftInProgress$ = this.formService.submitDraft().pipe(
       tapOnCommandSuccessfullyDone(() => {
         this.ozgcloudDialogService.closeAll();
@@ -29,7 +29,7 @@ export class VorgangDetailBescheidenAbbrechenDialogComponent {
     );
   }
 
-  public onCancel() {
+  public onCancel(): void {
     if (this.bescheidService.existsBescheidDraft()) {
       this.deleteBescheidDraft();
     } else {