From 8aa8f21bbb959163bac79ed295f546913079b615 Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Tue, 14 Jun 2022 14:58:15 +0530 Subject: [PATCH] MM-22405: Display the translated message instead of error id (#20462) For a config failure, we now translate the message and show a user friendly string rather than the error id. This makes things easier to debug and read. https://mattermost.atlassian.net/browse/MM-22405 ```release-note NONE ``` --- config/database_test.go | 5 ++++- config/file_test.go | 4 +++- config/store.go | 8 ++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) 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.