diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
index 70e6c53c28a9f42c883e0e0b9dbf38316eab452b..ddff982be51e7cfade051dd28ed8c70142d8bc8f 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java
@@ -4,14 +4,7 @@ import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-import org.springframework.http.client.support.BasicAuthenticationInterceptor;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.util.DefaultUriBuilderFactory;
-
-import java.io.IOException;
 
 @Getter
 @Slf4j
@@ -30,14 +23,4 @@ public class RabbitConfig extends BaseTest {
     @Value("${dbrepo.endpoints.brokerService}")
     private String brokerEndpoint;
 
-    @Bean
-    @Primary
-    public RestTemplate brokerRestTemplate() {
-        final RestTemplate restTemplate = new RestTemplate();
-        restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory(brokerEndpoint));
-        restTemplate.getInterceptors()
-                .add(new BasicAuthenticationInterceptor(USER_1_USERNAME, USER_1_PASSWORD));
-        return restTemplate;
-    }
-
 }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
index 054c96e3d925412cc746a81c97e9f8d3d448d7bc..6f818d39b870571db464289895cefde419b98644 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java
@@ -967,7 +967,7 @@ public class IdentifierEndpointUnitTest extends BaseTest {
 
         /* test */
         final ResponseEntity<IdentifierDto> response = identifierEndpoint.publish(IDENTIFIER_1_ID);
-        assertEquals(HttpStatus.CREATED, response.getStatusCode());
+        assertEquals(HttpStatus.ACCEPTED, response.getStatusCode());
         final IdentifierDto body = response.getBody();
         assertNotNull(body);
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
index b96bc4bad2611d7a5ce87d44afa007e434c4796e..c91fef0d0d6f2945650164f803a912e6620958a5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java
@@ -9,13 +9,12 @@ import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
 import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType;
 import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.NameIdentifierSchemeType;
 import at.ac.tuwien.ifs.dbrepo.core.exception.*;
-import at.ac.tuwien.ifs.dbrepo.core.mapper.MetadataMapper;
+import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway;
 import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository;
 import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository;
 import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository;
 import at.ac.tuwien.ifs.dbrepo.repository.UserRepository;
-import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -46,7 +45,7 @@ import static org.mockito.Mockito.when;
 
 @ExtendWith(SpringExtension.class)
 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
-@SpringBootTest(properties = "spring.profiles.active=local,junit,doi")
+@SpringBootTest(properties = "spring.profiles.active=doi")
 public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
 
     @MockBean
@@ -145,7 +144,10 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
                 .thenReturn(DATABASE_1_BRIEF_DTO);
 
         /* test */
-        dataCiteIdentifierService.save(DATABASE_1, USER_1, IDENTIFIER_1_SAVE_DTO);
+        assertEquals(7, dataCiteIdentifierService.findAll().size());
+        final Identifier response = dataCiteIdentifierService.save(DATABASE_1, USER_1, IDENTIFIER_1_SAVE_DTO);
+        assertEquals(IDENTIFIER_1_DOI, response.getDoi());
+        assertEquals(7, dataCiteIdentifierService.findAll().size());
     }
 
     @Test
@@ -185,8 +187,8 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
     @Test
     public void create_succeeds() throws SearchServiceException, MalformedException, DataServiceException,
             QueryNotFoundException, DataServiceConnectionException, DatabaseNotFoundException,
-            SearchServiceConnectionException, IdentifierNotFoundException, ViewNotFoundException,
-            ExternalServiceException {
+            SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException,
+            IdentifierNotFoundException {
         final ResponseEntity<DataCiteBody<DataCiteDoi>> mock = ResponseEntity.status(HttpStatus.CREATED)
                 .body(IDENTIFIER_1_DATA_CITE);
 
@@ -195,15 +197,17 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
                 .thenReturn(mock);
 
         /* test */
+        assertEquals(7, dataCiteIdentifierService.findAll().size());
         final Identifier response = dataCiteIdentifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_DTO);
         assertNotNull(response.getDoi());
+        assertEquals(8, dataCiteIdentifierService.findAll().size());
     }
 
     @Test
     public void create_hasDoi_succeeds() throws SearchServiceException, MalformedException, DataServiceException,
             QueryNotFoundException, DataServiceConnectionException, DatabaseNotFoundException,
-            SearchServiceConnectionException, ViewNotFoundException,
-            ExternalServiceException {
+            SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException,
+            IdentifierNotFoundException {
         final ResponseEntity<DataCiteBody<DataCiteDoi>> mock = ResponseEntity.status(HttpStatus.CREATED)
                 .body(IDENTIFIER_1_DATA_CITE);
 
@@ -212,8 +216,10 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
                 .thenReturn(mock);
 
         /* test */
+        assertEquals(7, dataCiteIdentifierService.findAll().size());
         final Identifier response = dataCiteIdentifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_WITH_DOI_DTO);
         assertEquals(IDENTIFIER_1_DOI, response.getDoi());
+        assertEquals(8, dataCiteIdentifierService.findAll().size());
     }
 
     @Test
@@ -227,9 +233,11 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest {
                 .thenReturn(mock);
 
         /* test */
+        assertEquals(7, dataCiteIdentifierService.findAll().size());
         final Identifier response = dataCiteIdentifierService.publish(IDENTIFIER_7);
         assertEquals(IDENTIFIER_7.getId(), response.getId());
         assertEquals(IdentifierStatusType.PUBLISHED, response.getStatus());
+        assertEquals(7, dataCiteIdentifierService.findAll().size());
     }
 
     @Test
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
index a2e01768775e0f81e9cc6eccf9752536ae9e67eb..d67c8898718f03c4eb712f57c7f173e42c56a38e 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java
@@ -476,7 +476,8 @@ public class IdentifierServicePersistenceTest extends BaseTest {
     @Test
     public void create_hasDoi_succeeds() throws SearchServiceException, MalformedException, DataServiceException,
             QueryNotFoundException, DataServiceConnectionException, DatabaseNotFoundException,
-            SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException {
+            SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException,
+            IdentifierNotFoundException {
 
         /* test */
         final Identifier response = identifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_WITH_DOI_DTO);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
index ac23dc1b4f9e425307e057722fdbc31b18e0a660..32193375fedf5cf3c24b356624f755c9e0f4f051 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java
@@ -142,7 +142,7 @@ public interface IdentifierService {
      */
     Identifier create(Database database, User user, CreateIdentifierDto data) throws DataServiceException,
             DataServiceConnectionException, MalformedException, ViewNotFoundException, DatabaseNotFoundException,
-            QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException;
+            QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException, IdentifierNotFoundException;
 
     /**
      * Export metadata for a identifier
diff --git a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
index 0ce9c93a5407241bb5523fb4ac5b5661b87f0158..a6d50d4f966706e4e1f24b1457e99ff750e5b412 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java
@@ -110,9 +110,13 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
     @Transactional(rollbackFor = {Exception.class})
     public Identifier create(Database database, User user, CreateIdentifierDto data) throws DataServiceException,
             DataServiceConnectionException, MalformedException, ViewNotFoundException, DatabaseNotFoundException,
-            QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException {
-        data.setDoi(remoteSave(identifierService.create(database, user, data), DataCiteDoiEvent.REGISTER));
-        return identifierService.create(database, user, data);
+            QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException,
+            IdentifierNotFoundException {
+        final Identifier identifier = identifierService.create(database, user, data);
+        data.setDoi(remoteSave(identifier, DataCiteDoiEvent.REGISTER));
+        final IdentifierSaveDto dto = metadataMapper.identifierCreateDtoToIdentifierSaveDto(data);
+        dto.setId(identifier.getId());
+        return identifierService.save(database, user, dto);
     }
 
     /**