diff --git a/pkg/items/middleware/caching_middleware.go b/pkg/items/middleware/caching_middleware.go
index 6b11851381fb9dc13b630477052f05d4148bc765..44f32a666d319f73b6a5f107a475f8fbe045d813 100644
--- a/pkg/items/middleware/caching_middleware.go
+++ b/pkg/items/middleware/caching_middleware.go
@@ -35,7 +35,7 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
 
 	value, e := m.cache.Get(makeKey(spaceId, envId, collectionId, itemId))
 	if e == nil {
-		return value.(*service.Item), err
+		return value.(*service.Item).Clone(), err
 	}
 	itm, err = m.Items.Get(ctx, spaceId, envId, collectionId, itemId, options...)
 	if err == nil {
@@ -43,12 +43,14 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
 		if err != nil {
 			return nil, err
 		}
-		m.cache.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), itm)
+		_ = m.cache.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), itm)
 		for _, al := range env.Aliases {
-			m.cache.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), itm)
+			_ = m.cache.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), itm)
 		}
+		return itm.Clone(), err
 	}
-	return itm, err
+
+	return nil, err
 }
 
 func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, options ...*service.UpdateOptions) (err error) {
@@ -59,11 +61,11 @@ func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, optio
 		if err != nil {
 			return err
 		}
-		m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
-		m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
 		for _, al := range env.Aliases {
-			m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
-			m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
 		}
 	}
 	return err
@@ -77,11 +79,11 @@ func (m cachingMiddleware) Delete(ctx context.Context, del *service.Item, option
 		if err != nil {
 			return err
 		}
-		m.cache.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
-		m.cachePublished.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
+		_ = m.cache.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
+		_ = m.cachePublished.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
 		for _, al := range env.Aliases {
-			m.cache.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
-			m.cachePublished.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
+			_ = m.cache.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
+			_ = m.cachePublished.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
 		}
 
 	}
@@ -96,11 +98,11 @@ func (m cachingMiddleware) Publish(ctx context.Context, item *service.Item, opti
 		if err != nil {
 			return err
 		}
-		m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
-		m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
 		for _, al := range env.Aliases {
-			m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
-			m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
 		}
 	}
 	return err
@@ -114,11 +116,11 @@ func (m cachingMiddleware) Unpublish(ctx context.Context, item *service.Item, op
 		if err != nil {
 			return err
 		}
-		m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
-		m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
 		for _, al := range env.Aliases {
-			m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
-			m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
 		}
 	}
 	return err
@@ -132,7 +134,7 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
 	if e == nil {
 		value := val.(map[string]*service.Item)
 		if i, ok := value[opts.LocaleID]; ok {
-			return i, nil
+			return i.Clone(), nil
 		}
 	}
 
@@ -148,13 +150,14 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
 			value = val.(map[string]*service.Item)
 		}
 		value[opts.LocaleID] = itm
-		m.cachePublished.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), value)
+		_ = m.cachePublished.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), value)
 		for _, al := range env.Aliases {
-			m.cachePublished.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), value)
+			_ = m.cachePublished.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), value)
 		}
+		return itm.Clone(), err
 	}
 
-	return itm, err
+	return nil, err
 }
 
 func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, options ...*service.ArchiveOptions) (err error) {
@@ -165,11 +168,11 @@ func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, opti
 		if err != nil {
 			return err
 		}
-		m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
-		m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
+		_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
 		for _, al := range env.Aliases {
-			m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
-			m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
+			_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
 		}
 	}
 	return err
diff --git a/pkg/items/middleware/caching_middleware_test.go b/pkg/items/middleware/caching_middleware_test.go
index c3e862b1ffe3dd5e7fdde976cc4aa09e316a600f..20fd583eab437074f477ee2e9c0531904965f4cb 100644
--- a/pkg/items/middleware/caching_middleware_test.go
+++ b/pkg/items/middleware/caching_middleware_test.go
@@ -47,10 +47,10 @@ func TestItemsCache(t *testing.T) {
 
 		v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 		require.NoError(t, err)
-		assert.Same(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.")
+		assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.")
 
 		v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
-		assert.Same(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.")
+		assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.")
 		require.NoError(t, err)
 
 		env.AssertExpectations(t)
@@ -71,10 +71,10 @@ func TestItemsCache(t *testing.T) {
 
 		v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
 		require.NoError(t, err)
-		assert.Same(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.")
+		assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.")
 
 		v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
-		assert.Same(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.")
+		assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.")
 		require.NoError(t, err)
 
 		env.AssertExpectations(t)
@@ -95,11 +95,11 @@ func TestItemsCache(t *testing.T) {
 
 		v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 		require.NoError(t, err)
-		assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+		assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 		v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 		require.NoError(t, err)
-		assert.Same(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.")
+		assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.")
 
 		env.AssertExpectations(t)
 		itms.AssertExpectations(t)
@@ -119,11 +119,11 @@ func TestItemsCache(t *testing.T) {
 
 		v2, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 		require.NoError(t, err)
-		assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+		assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 		v3, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 		require.NoError(t, err)
-		assert.Same(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.")
+		assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.")
 
 		env.AssertExpectations(t)
 		itms.AssertExpectations(t)
@@ -152,19 +152,19 @@ func TestItemsCache(t *testing.T) {
 
 		v2loc1, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: loc1})
 		require.NoError(t, err)
-		assert.Same(t, v1loc1, v2loc1, "Ожидается получение объекта c локализацией loc1 из кеша.")
+		assert.Equal(t, v1loc1, v2loc1, "Ожидается получение объекта c локализацией loc1 из кеша.")
 
 		v2loc2, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: loc2})
 		require.NoError(t, err)
-		assert.Same(t, v1loc2, v2loc2, "Ожидается получение объекта c локализацией loc2 из кеша.")
+		assert.Equal(t, v1loc2, v2loc2, "Ожидается получение объекта c локализацией loc2 из кеша.")
 
 		v3loc1, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: loc1})
 		require.NoError(t, err)
-		assert.Same(t, v2loc1, v3loc1, "Ожидается получение объекта c локализацией loc1 из кеша, при запросе того же объекта по ID окружения.")
+		assert.Equal(t, v2loc1, v3loc1, "Ожидается получение объекта c локализацией loc1 из кеша, при запросе того же объекта по ID окружения.")
 
 		v3loc2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: loc2})
 		require.NoError(t, err)
-		assert.Same(t, v2loc2, v3loc2, "Ожидается получение объекта c локализацией loc2 из кеша, при запросе того же объекта по ID окружения.")
+		assert.Equal(t, v2loc2, v3loc2, "Ожидается получение объекта c локализацией loc2 из кеша, при запросе того же объекта по ID окружения.")
 
 		env.AssertExpectations(t)
 		itms.AssertExpectations(t)
@@ -185,7 +185,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -198,7 +198,7 @@ func TestItemsCache(t *testing.T) {
 
 			v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после обновления и получение его заново из сервиса.")
+			assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после обновления и получение его заново из сервиса.")
 
 			env.AssertExpectations(t)
 			itms.AssertExpectations(t)
@@ -218,7 +218,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			itms.On("Archive", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -231,7 +231,7 @@ func TestItemsCache(t *testing.T) {
 
 			v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после архивации и получение из сервиса.")
+			assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после архивации и получение из сервиса.")
 
 			env.AssertExpectations(t)
 			itms.AssertExpectations(t)
@@ -251,7 +251,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			itms.On("Publish", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -263,7 +263,7 @@ func TestItemsCache(t *testing.T) {
 
 			v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после публикации и получение заново из сервиса.")
+			assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после публикации и получение заново из сервиса.")
 
 			env.AssertExpectations(t)
 			itms.AssertExpectations(t)
@@ -283,11 +283,11 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша при повторном запросе.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша при повторном запросе.")
 
 			v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по alias окружения.")
+			assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по alias окружения.")
 
 			itms.On("Delete", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -323,7 +323,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
 			itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
@@ -336,7 +336,7 @@ func TestItemsCache(t *testing.T) {
 
 			v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение заново из сервиса.")
+			assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение заново из сервиса.")
 
 			env.AssertExpectations(t)
 			itms.AssertExpectations(t)
@@ -356,7 +356,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
 
 			itms.On("Publish", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -389,7 +389,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
 
 			itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -402,7 +402,7 @@ func TestItemsCache(t *testing.T) {
 
 			v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
 			require.NoError(t, err)
-			assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша при обновлении и получение из сервиса по alias окружения.")
+			assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша при обновлении и получение из сервиса по alias окружения.")
 
 			env.AssertExpectations(t)
 			itms.AssertExpectations(t)
@@ -422,7 +422,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
 
 			itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -435,7 +435,7 @@ func TestItemsCache(t *testing.T) {
 
 			v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
 			require.NoError(t, err)
-			assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение из сервиса по alias окружения.")
+			assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение из сервиса по alias окружения.")
 
 			env.AssertExpectations(t)
 			itms.AssertExpectations(t)
@@ -455,11 +455,11 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
+			assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
 
 			itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -496,11 +496,11 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
+			assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
 
 			itms.On("Archive", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -537,11 +537,11 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
+			assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
 
 			itms.On("Delete", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -578,11 +578,11 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
+			assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
 
 			itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
 			env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
@@ -623,14 +623,14 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			v3, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
 
 			v4, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.NoError(t, err)
-			assert.Same(t, v3, v4, "Ожидается получение опубликованного объекта из кеша.")
+			assert.Equal(t, v3, v4, "Ожидается получение опубликованного объекта из кеша.")
 
 			itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
 			err = svc.Unpublish(ctx, &items.Item{ID: itemID, SpaceID: spaceID, EnvID: envAlias, CollectionID: colID, State: items.StatePublished})
@@ -643,7 +643,7 @@ func TestItemsCache(t *testing.T) {
 
 			v5, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.NotSame(t, v5, v2, "Ожидается удаление объекта из кэша и получение заново из сервиса.")
+			assert.NotEqual(t, v5, v2, "Ожидается удаление объекта из кэша и получение заново из сервиса.")
 
 			_, err = svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
 			require.Error(t, err)
@@ -667,7 +667,7 @@ func TestItemsCache(t *testing.T) {
 
 			v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
-			assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.")
+			assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
 
 			time.Sleep(2 * ttl)
 
@@ -677,6 +677,7 @@ func TestItemsCache(t *testing.T) {
 			v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
 			require.NoError(t, err)
 			assert.NotSame(t, v2, v3, "Ожидается удаление объекта из кэша и получение из сервиса.")
+			assert.Equal(t, v2, v3)
 
 			env.AssertExpectations(t)
 			itms.AssertExpectations(t)