Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix MultipleObjectsReturned error on webhook endpoints #1996

Merged
merged 4 commits into from
May 23, 2023

Conversation

vadimkerr
Copy link
Member

@vadimkerr vadimkerr commented May 23, 2023

What this PR does

Sometimes CustomButtonView returns HTTP 500 with the following error:

apps.alerts.models.custom_button.CustomButton.MultipleObjectsReturned: get() returned more than one CustomButton -- it returned 3!

This PR fixes it by adding .distinct() to the CustomButton queryset when retrieving an instance + does the same for WebhooksView.

Which issue(s) this PR fixes

Related to https://github.com/grafana/oncall-private/issues/1828

Checklist

  • Unit, integration, and e2e (if applicable) tests updated
  • Documentation added (or pr:no public docs PR label added if not required)
  • CHANGELOG.md updated (or pr:no changelog PR label added if not required)

@vadimkerr vadimkerr added the pr:no public docs Added to a PR that does not require public documentation updates label May 23, 2023
@vadimkerr vadimkerr changed the title Fix duplicate instances on webhook endpoints Fix duplicate model instances on webhook endpoints May 23, 2023
@vadimkerr vadimkerr changed the title Fix duplicate model instances on webhook endpoints Fix MultipleObjectsReturned error on webhook endpoints May 23, 2023
@vadimkerr vadimkerr marked this pull request as ready for review May 23, 2023 16:04
@vadimkerr vadimkerr requested a review from a team May 23, 2023 16:04
@vadimkerr vadimkerr enabled auto-merge May 23, 2023 16:19
@vadimkerr vadimkerr added this pull request to the merge queue May 23, 2023
Merged via the queue into dev with commit 06bd045 May 23, 2023
@vadimkerr vadimkerr deleted the vadimkerr/fix-duplicate-custom-buttons branch May 23, 2023 16:27
Comment on lines +200 to +203
"""
This property returns a list of Q objects that are used to filter instances by teams available to the user.
NOTE: use .distinct() after filtering by available teams as it may return duplicate instances.
"""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

vadimkerr added a commit that referenced this pull request May 24, 2023
# What this PR does
Sometimes `CustomButtonView` returns HTTP 500 with the following error:

```
apps.alerts.models.custom_button.CustomButton.MultipleObjectsReturned: get() returned more than one CustomButton -- it returned 3!
```

This PR fixes it by adding `.distinct()` to the `CustomButton` queryset
when retrieving an instance + does the same for `WebhooksView`.

## Which issue(s) this PR fixes
Related to grafana/oncall-private#1828

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr:no public docs Added to a PR that does not require public documentation updates
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants