diff --git a/api4/config.go b/api4/config.go index f3de4256ae..c76c96e373 100644 --- a/api4/config.go +++ b/api4/config.go @@ -180,7 +180,7 @@ func patchConfig(c *Context, w http.ResponseWriter, r *http.Request) { } appCfg := c.App.Config() - if *appCfg.ServiceSettings.SiteURL != "" && *cfg.ServiceSettings.SiteURL == "" { + if *appCfg.ServiceSettings.SiteURL != "" && (cfg.ServiceSettings.SiteURL == nil || *cfg.ServiceSettings.SiteURL == "") { c.Err = model.NewAppError("patchConfig", "api.config.update_config.clear_siteurl.app_error", nil, "", http.StatusBadRequest) return } diff --git a/api4/config_test.go b/api4/config_test.go index 4589817f01..196df28295 100644 --- a/api4/config_test.go +++ b/api4/config_test.go @@ -550,6 +550,12 @@ func TestPatchConfig(t *testing.T) { cfg, resp = th.SystemAdminClient.GetConfig() CheckNoError(t, resp) require.Equal(t, nonEmptyURL, *cfg.ServiceSettings.SiteURL) + + // Check that sending an empty config returns an error. + _, resp = th.SystemAdminClient.PatchConfig(&model.Config{}) + require.NotNil(t, resp.Error) + CheckBadRequestStatus(t, resp) + assert.Equal(t, "api.config.update_config.clear_siteurl.app_error", resp.Error.Id) }) }