diff --git a/pkg/setup/collection.go b/pkg/setup/collection.go
index b52c32d18c95acbba856d8280473f02f8824c4be..f8d119db2b54bc8a9c44c389aafc3e041aafcd1d 100644
--- a/pkg/setup/collection.go
+++ b/pkg/setup/collection.go
@@ -130,7 +130,7 @@ func (s *Setup) InstallCollections(ctx context.Context) (err error) {
 				zap.Error(err),
 			)
 
-			return errors.WithErrors(ErrInstallCollections, err)
+			return errors.WithDetail(errors.Wrap(err, "migrate"), "Возникла ошибка при миграции данных")
 		}
 	}
 
diff --git a/pkg/setup/collection_test.go b/pkg/setup/collection_test.go
index 2e807a88906548480d18ce69a74e7fdc199dc7d9..b249048970b153d08f30f8aecf6f732c827cf47e 100644
--- a/pkg/setup/collection_test.go
+++ b/pkg/setup/collection_test.go
@@ -164,6 +164,23 @@ func TestSetup_InstallCollections(t *testing.T) {
 				assert.NoError(t, err)
 			},
 		},
+		{
+			name:        "Fail to install collection on migrate",
+			collections: []*collections.Collection{{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}},
+			collectionsCall: func(svc *mockscollections.Collections) {
+				svc.On("Get", mock.Anything, "sp", "env", "1").Return(nil, errors.New("not found")).Once()
+				svc.On("Create", mock.Anything, &collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}).Return(&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}, nil).Once()
+				svc.On("SetSchema", mock.Anything, "sp", "env", "1", schema.New("name", field.String())).Return(nil).Once()
+			},
+			envsCall: func(svc *envmocks.Environments) {
+				svc.On("Migrate", mock.Anything, "sp", "env", &environments.MigrateOptions{Wait: true}).Return(errors.New("migrate error")).Once()
+			},
+			wantErr: func(t *testing.T, err error) {
+				assert.Error(t, err)
+				assert.EqualError(t, err, "migrate: migrate error")
+				assert.Contains(t, errors.GetDetail(err), "Возникла ошибка при миграции данных")
+			},
+		},
 	}
 
 	for _, tt := range tests {
diff --git a/pkg/setup/setup_test.go b/pkg/setup/setup_test.go
index 99c11e7a122b1f45df501bbf405936ee00750f7f..7c2059732443bd697f4e9b618f36569e45626fa9 100644
--- a/pkg/setup/setup_test.go
+++ b/pkg/setup/setup_test.go
@@ -589,7 +589,7 @@ func TestSetupInstall(t *testing.T) {
 		err := setup.Install(context.Background())
 
 		require.Error(t, err)
-		assert.ErrorContains(t, err, "failed to install collection")
+		assert.ErrorContains(t, err, "migrate: can't migrate")
 
 		rMock.AssertExpectations(t)
 		collsMock.AssertExpectations(t)