diff --git a/pkg/api/apikey.go b/pkg/api/apikey.go index d194429906f..945bdb55c30 100644 --- a/pkg/api/apikey.go +++ b/pkg/api/apikey.go @@ -68,7 +68,10 @@ func (hs *HTTPServer) AddAPIKey(c *models.ReqContext, cmd models.AddApiKeyComman if err == models.ErrInvalidApiKeyExpiration { return Error(400, err.Error(), nil) } - return Error(500, "Failed to add API key", err) + if err.Error() == models.ErrDuplicateApiKey.Error() { + return Error(409, "API Key Name Must Be Unique", nil) + } + return Error(500, "Failed to add API", err) } result := &dtos.NewApiKeyResult{ diff --git a/pkg/models/apikey.go b/pkg/models/apikey.go index 1edc8379d64..33fc593eba5 100644 --- a/pkg/models/apikey.go +++ b/pkg/models/apikey.go @@ -7,6 +7,7 @@ import ( var ErrInvalidApiKey = errors.New("Invalid API Key") var ErrInvalidApiKeyExpiration = errors.New("Negative value for SecondsToLive") +var ErrDuplicateApiKey = errors.New("UNIQUE constraint failed: api_key.org_id, api_key.name") type ApiKey struct { Id int64