diff --git a/config/database_test.go b/config/database_test.go index 7f95b36b3a..eedaafd758 100644 --- a/config/database_test.go +++ b/config/database_test.go @@ -6,6 +6,7 @@ package config import ( "bytes" "encoding/json" + "errors" "fmt" "os" "strings" @@ -842,7 +843,9 @@ func TestDatabaseStoreLoad(t *testing.T) { err = ds.Load() if assert.Error(t, err) { - assert.EqualError(t, err, "invalid config: Config.IsValid: model.config.is_valid.site_url.app_error, parse \"invalid\": invalid URI for request") + var appErr *model.AppError + require.True(t, errors.As(err, &appErr)) + assert.Equal(t, appErr.Id, "model.config.is_valid.site_url.app_error") } }) diff --git a/config/file_test.go b/config/file_test.go index 3ff5cf12b4..c1ed624eff 100644 --- a/config/file_test.go +++ b/config/file_test.go @@ -819,7 +819,9 @@ func TestFileStoreLoad(t *testing.T) { err = fs.Load() if assert.Error(t, err) { - assert.EqualError(t, err, "invalid config: Config.IsValid: model.config.is_valid.site_url.app_error, parse \"invalid\": invalid URI for request") + var appErr *model.AppError + require.True(t, errors.As(err, &appErr)) + assert.Equal(t, appErr.Id, "model.config.is_valid.site_url.app_error") } }) diff --git a/config/store.go b/config/store.go index d8b9434bf4..760d779dab 100644 --- a/config/store.go +++ b/config/store.go @@ -12,6 +12,7 @@ import ( "github.com/pkg/errors" "github.com/mattermost/mattermost-server/v6/model" + "github.com/mattermost/mattermost-server/v6/shared/i18n" "github.com/mattermost/mattermost-server/v6/utils/jsonutils" ) @@ -293,8 +294,11 @@ func (s *Store) Load() error { loadedCfg = applyEnvironmentMap(loadedCfg, GetEnvironment()) fixConfig(loadedCfg) - if err := loadedCfg.IsValid(); err != nil { - return errors.Wrap(err, "invalid config") + if appErr := loadedCfg.IsValid(); appErr != nil { + // Translating the error before displaying it in the console. + // Defaulting to english for server side language. + appErr.Translate(i18n.GetUserTranslations("en")) + return errors.Wrap(appErr, "invalid config") } // Backing up feature flags section in case we need to restore them later on.