diff --git a/pkg/services/datasources/service/datasource.go b/pkg/services/datasources/service/datasource.go index c553bd2cd08..7e422d4b6ab 100644 --- a/pkg/services/datasources/service/datasource.go +++ b/pkg/services/datasources/service/datasource.go @@ -543,10 +543,17 @@ func (s *Service) UpdateDataSource(ctx context.Context, cmd *datasources.UpdateD "datasource_uid", dataSource.UID) if dataSource.JsonData != nil { - previousRules := dataSource.JsonData.Get("teamHttpHeaders") + previousRules := dataSource.JsonData.Get("teamHttpHeaders").Interface() if previousRules == nil { - cmd.JsonData.Del("teamHttpHeaders") + if cmd.JsonData != nil { + cmd.JsonData.Del("teamHttpHeaders") + } } else { + if cmd.JsonData == nil { + // It's fine to instantiate a new JsonData here + // Because it's done in the SQLStore.UpdateDataSource anyway + cmd.JsonData = simplejson.New() + } cmd.JsonData.Set("teamHttpHeaders", previousRules) } }