From 10332b796aa7b1617e4cffae26133bb07bff9bcc Mon Sep 17 00:00:00 2001 From: Thomas Randolph <trandolph@gitlab.com> Date: Tue, 13 Feb 2024 03:34:01 +0000 Subject: [PATCH] Attempt to fix Sentry errors Issues: - No replication steps - No consistent errors (associated Sentry link in issue is not found) - MRs not even primary cause of this type of error (it's mostly the Issuable Popover in Issues reading `issue`, not `mergeRequest`) Given the exact error that _had been_ reported ("Cannot read properties of null (reading 'mergeRequest')", these tweaks may help prevent a handful (literally: 5-10 over two weeks) of errors. --- .../javascripts/issuable/popover/components/issue_popover.vue | 2 +- .../javascripts/issuable/popover/components/mr_popover.vue | 2 +- .../vue_merge_request_widget/components/merge_checks.vue | 2 +- .../components/states/mr_widget_conflicts.vue | 2 +- .../components/states/ready_to_merge.vue | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/issuable/popover/components/issue_popover.vue b/app/assets/javascripts/issuable/popover/components/issue_popover.vue index 12d76ec4b548f..236a0a947715b 100644 --- a/app/assets/javascripts/issuable/popover/components/issue_popover.vue +++ b/app/assets/javascripts/issuable/popover/components/issue_popover.vue @@ -64,7 +64,7 @@ export default { apollo: { issue: { query, - update: (data) => data.project.issue, + update: (data) => data.project?.issue || {}, variables() { const { namespacePath, iid } = this; diff --git a/app/assets/javascripts/issuable/popover/components/mr_popover.vue b/app/assets/javascripts/issuable/popover/components/mr_popover.vue index 25a40f63de3e6..dee7d8309e83c 100644 --- a/app/assets/javascripts/issuable/popover/components/mr_popover.vue +++ b/app/assets/javascripts/issuable/popover/components/mr_popover.vue @@ -74,7 +74,7 @@ export default { apollo: { mergeRequest: { query, - update: (data) => data.project.mergeRequest, + update: (data) => data.project?.mergeRequest || {}, variables() { const { namespacePath, iid } = this; diff --git a/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue b/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue index 4578aa941cdcf..976226328fcb8 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue @@ -100,7 +100,7 @@ export default { ); }, checks() { - return this.state.mergeabilityChecks || []; + return this.state?.mergeabilityChecks || []; }, sortedChecks() { const order = ['FAILED', 'SUCCESS']; diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_conflicts.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_conflicts.vue index d2c1c91402893..244d2846bc611 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_conflicts.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_conflicts.vue @@ -22,7 +22,7 @@ export default { variables() { return this.mergeRequestQueryVariables; }, - update: (data) => data.project?.mergeRequest.userPermissions || {}, + update: (data) => data.project?.mergeRequest?.userPermissions || {}, }, state: { query: conflictsStateQuery, diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue index af7453d84d637..5b58f426cbeaa 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue @@ -65,7 +65,7 @@ export default { }, manual: true, result({ data }) { - if (!data.project) { + if (!data?.project?.mergeRequest) { return; } -- GitLab