diff --git a/src/main/java/net/geant/nmaas/portal/persistent/entity/DomainGroup.java b/src/main/java/net/geant/nmaas/portal/persistent/entity/DomainGroup.java
index 36f735f09be49321f9205d1072bcddccc2e8d1b1..1533eaea4e9795c8c29630a2bc044ab7bdb7dd05 100644
--- a/src/main/java/net/geant/nmaas/portal/persistent/entity/DomainGroup.java
+++ b/src/main/java/net/geant/nmaas/portal/persistent/entity/DomainGroup.java
@@ -23,6 +23,7 @@ import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 @Entity
diff --git a/src/main/java/net/geant/nmaas/portal/service/DomainGroupService.java b/src/main/java/net/geant/nmaas/portal/service/DomainGroupService.java
index f8609b69cb27bd1aa77c88eba016efbb69457581..a95e5c3c1e352e68b752110bc679286797ecdc4c 100644
--- a/src/main/java/net/geant/nmaas/portal/service/DomainGroupService.java
+++ b/src/main/java/net/geant/nmaas/portal/service/DomainGroupService.java
@@ -1,6 +1,7 @@
 package net.geant.nmaas.portal.service;
 
 import net.geant.nmaas.portal.api.domain.DomainGroupView;
+import net.geant.nmaas.portal.persistent.entity.ApplicationBase;
 import net.geant.nmaas.portal.persistent.entity.Domain;
 
 import java.util.List;
@@ -23,4 +24,6 @@ public interface DomainGroupService {
 
     DomainGroupView updateDomainGroup(Long domainGroupId, DomainGroupView view);
 
+    void deleteAppBaseFromAllAppState(ApplicationBase base);
+
 }
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationStatePerDomainServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationStatePerDomainServiceImpl.java
index cd043eb0faa60c7ec897aa8bec03020affb4692c..297af2ebcc25cc6f74df8103c18012adf3c8c45b 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationStatePerDomainServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationStatePerDomainServiceImpl.java
@@ -101,5 +101,4 @@ public class ApplicationStatePerDomainServiceImpl implements ApplicationStatePer
     public boolean validateAppConfigurationAgainstState(AppConfigurationView appConfig, ApplicationStatePerDomain appState) {
         return appConfig.getStorageSpace() == null || appConfig.getStorageSpace() <= appState.getPvStorageSizeLimit();
     }
-
 }
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/DomainGroupServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/DomainGroupServiceImpl.java
index 0c4cd891b7cdf12df56fdb04a7536fe3fe0daee3..32c7e7598c9dadc203e87b9c7993ae9c87a5fb08 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/DomainGroupServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/DomainGroupServiceImpl.java
@@ -6,6 +6,7 @@ import net.geant.nmaas.portal.api.domain.ApplicationStatePerDomainView;
 import net.geant.nmaas.portal.api.domain.DomainGroupView;
 import net.geant.nmaas.portal.api.exception.MissingElementException;
 import net.geant.nmaas.portal.api.exception.ProcessingException;
+import net.geant.nmaas.portal.persistent.entity.ApplicationBase;
 import net.geant.nmaas.portal.persistent.entity.ApplicationStatePerDomain;
 import net.geant.nmaas.portal.persistent.entity.Domain;
 import net.geant.nmaas.portal.persistent.entity.DomainGroup;
@@ -136,4 +137,10 @@ public class DomainGroupServiceImpl implements DomainGroupService {
         }
     }
 
+    public void deleteAppBaseFromAllAppState(ApplicationBase base) {
+        domainGroupRepository.findAll().forEach(d -> {
+          d.getApplicationStatePerDomain().removeIf(state -> state.getApplicationBase().equals(base));
+        });
+    }
+
 }
\ No newline at end of file
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
index 7f4ff1affeaf543bb54bc73e8a3b8ddfc255a8c4..0caa0356871627bb0839f0bdf10545168c9701b8 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
@@ -536,8 +536,8 @@ public class DomainServiceImpl implements DomainService {
     public void removeAppBaseFromAllDomains(ApplicationBase base) {
         getDomains().forEach(domain -> {
             removeFromDomain(base, domain);
-
         });
+        domainGroupService.deleteAppBaseFromAllAppState(base);
     }
 
     private void removeFromDomain(ApplicationBase base, Domain domain) {
diff --git a/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java b/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java
index d3c645f890f97fd226061f03ae830b15588f2e06..e9e2e9922bb914f33c467d751f6318fca83e33d1 100644
--- a/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java
+++ b/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java
@@ -473,4 +473,22 @@ public class DomainServiceTest {
         assertEquals(0, domain2.getApplicationStatePerDomain().size());
     }
 
+    @Test
+    void shouldRemoveAppBaseFromAllDomainGroup() {
+        ApplicationBase applicationBase = new ApplicationBase(1L, "appBase");
+        ApplicationStatePerDomain statePerDomain = new ApplicationStatePerDomain(applicationBase);
+        DomainGroup domainGroup = new DomainGroup("test", "test1");
+        DomainGroup domainGroup2 = new DomainGroup("test2", "test2");
+        domainGroup.setApplicationStatePerDomain(new ArrayList<>(List.of(statePerDomain)));
+        domainGroup2.setApplicationStatePerDomain(new ArrayList<>(List.of(statePerDomain)));
+        when(domainGroupRepository.findAll()).thenReturn(List.of(domainGroup, domainGroup2));
+
+        domainGroupService.deleteAppBaseFromAllAppState(applicationBase);
+
+        assertEquals(0, domainGroup.getApplicationStatePerDomain().size());
+        assertEquals(0, domainGroup2.getApplicationStatePerDomain().size());
+
+
+    }
+
 }