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(nuxt): Use Nuxt error hooks instead of errorHandler to prevent 500 #13748

Merged
merged 3 commits into from
Sep 23, 2024

Conversation

s1gr1d
Copy link
Member

@s1gr1d s1gr1d commented Sep 23, 2024

Adds a new option attachErrorHandler to the vueIntegration. This option is used in the Nuxt SDK to prevent wrapping the existing Nuxt error handler. Instead, the errors are captured in the Nuxt hooks.

fixes: #12515

@s1gr1d s1gr1d requested review from Lms24, a team, stephanie-anderson and chargome and removed request for a team and stephanie-anderson September 23, 2024 09:12
Copy link
Contributor

github-actions bot commented Sep 23, 2024

size-limit report 📦

Path Size % Change Change
@sentry/browser 22.52 KB - -
@sentry/browser - with treeshaking flags 21.3 KB - -
@sentry/browser (incl. Tracing) 34.8 KB - -
@sentry/browser (incl. Tracing, Replay) 71.3 KB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 61.75 KB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 75.64 KB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 88.43 KB - -
@sentry/browser (incl. Tracing, Replay, Feedback, metrics) 90.28 KB - -
@sentry/browser (incl. metrics) 26.83 KB - -
@sentry/browser (incl. Feedback) 39.66 KB - -
@sentry/browser (incl. sendFeedback) 27.19 KB - -
@sentry/browser (incl. FeedbackAsync) 31.96 KB - -
@sentry/react 25.28 KB - -
@sentry/react (incl. Tracing) 37.77 KB - -
@sentry/vue 26.74 KB +0.07% +19 B 🔺
@sentry/vue (incl. Tracing) 36.69 KB +0.05% +18 B 🔺
@sentry/svelte 22.66 KB - -
CDN Bundle 23.83 KB - -
CDN Bundle (incl. Tracing) 36.56 KB - -
CDN Bundle (incl. Tracing, Replay) 71.06 KB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 76.38 KB - -
CDN Bundle - uncompressed 69.81 KB - -
CDN Bundle (incl. Tracing) - uncompressed 108.44 KB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 220.31 KB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 233.53 KB - -
@sentry/nextjs (client) 37.73 KB - -
@sentry/sveltekit (client) 35.37 KB - -
@sentry/node 121.77 KB - -
@sentry/node - without tracing 93.41 KB +0.01% +1 B 🔺
@sentry/aws-serverless 103.11 KB - -

View base workflow run

Copy link
Member

@chargome chargome left a comment

Choose a reason for hiding this comment

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

LGTM!

packages/vue/src/types.ts Outdated Show resolved Hide resolved
Comment on lines +39 to +41
// Check if the current `app.config.errorHandler` is explicitly set by the user before calling it.
if (typeof originalErrorHandler === 'function' && app.config.errorHandler) {
(originalErrorHandler as UnknownFunc).call(app, error, vm, lifecycleHook);
Copy link
Member

Choose a reason for hiding this comment

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

l: I guess technically, we don't need this check here for Nuxt, right? Given we don't attach the error handler anymore.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, this part is not related to Nuxt anymore. But I thought it still make sense to check if currently there is an error handler attached.

s1gr1d and others added 2 commits September 23, 2024 12:55
@s1gr1d s1gr1d merged commit c0a5a3e into develop Sep 23, 2024
101 checks passed
@s1gr1d s1gr1d deleted the sig/vue-nuxt-500-error branch September 23, 2024 11:15
alexandresoro pushed a commit to alexandresoro/ouca that referenced this pull request Sep 25, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@sentry/node](https://github.com/getsentry/sentry-javascript/tree/master/packages/node) ([source](https://github.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.31.0` -> `8.32.0`](https://renovatebot.com/diffs/npm/@sentry%2fnode/8.31.0/8.32.0) |
| [@sentry/react](https://github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://github.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.31.0` -> `8.32.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.31.0/8.32.0) |

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/node)</summary>

### [`v8.32.0`](https://github.com/getsentry/sentry-javascript/releases/tag/8.32.0)

[Compare Source](getsentry/sentry-javascript@8.31.0...8.32.0)

##### Important Changes

-   **ref(browser): Move navigation span descriptions into op ([#&#8203;13527](getsentry/sentry-javascript#13527

Moves the description of navigation related browser spans into the op, e.g. browser - cache -> browser.cache and sets
the description to the performanceEntry objects' names (in this context it is the URL of the page).

-   **feat(node): Add amqplibIntegration ([#&#8203;13714](getsentry/sentry-javascript#13714

-   **feat(nestjs): Add `SentryGlobalGenericFilter` and allow specifying application ref in global filter ([#&#8203;13673](getsentry/sentry-javascript#13673

Adds a `SentryGlobalGenericFilter` that filters both graphql and http exceptions depending on the context.

-   **feat: Set log level for Fetch/XHR breadcrumbs based on status code ([#&#8203;13711](getsentry/sentry-javascript#13711

Sets log levels in breadcrumbs for 5xx to error and 4xx to warning.

##### Other Changes

-   chore(nextjs): Bump rollup to 3.29.5 ([#&#8203;13761](getsentry/sentry-javascript#13761))
-   fix(core): Remove `sampled` flag from dynamic sampling context in Tracing without Performance mode ([#&#8203;13753](getsentry/sentry-javascript#13753))
-   fix(node): Ensure node-fetch does not emit spans without tracing ([#&#8203;13765](getsentry/sentry-javascript#13765))
-   fix(nuxt): Use Nuxt error hooks instead of errorHandler to prevent 500 ([#&#8203;13748](getsentry/sentry-javascript#13748))
-   fix(test): Unflake LCP test ([#&#8203;13741](getsentry/sentry-javascript#13741))

Work in this release was contributed by [@&#8203;Zen-cronic](https://github.com/Zen-cronic) and [@&#8203;Sjoertjuh](https://github.com/Sjoertjuh). Thank you for your contributions!

##### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://github.com/sentry/browser)                                                  | 22.63 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) - with treeshaking flags                         | 21.42 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. Tracing)                                  | 34.86 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. Tracing, Replay)                          | 71.36 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 61.79 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 75.71 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 88.48 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. Tracing, Replay, Feedback, metrics)       | 90.36 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. metrics)                                  | 26.91 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. Feedback)                                 | 39.77 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. sendFeedback)                             | 27.29 KB  |
| [@&#8203;sentry/browser](https://github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.08 KB  |
| [@&#8203;sentry/react](https://github.com/sentry/react)                                                    | 25.38 KB  |
| [@&#8203;sentry/react](https://github.com/sentry/react) (incl. Tracing)                                    | 37.84 KB  |
| [@&#8203;sentry/vue](https://github.com/sentry/vue)                                                      | 26.8 KB   |
| [@&#8203;sentry/vue](https://github.com/sentry/vue) (incl. Tracing)                                      | 36.75 KB  |
| [@&#8203;sentry/svelte](https://github.com/sentry/svelte)                                                   | 22.76 KB  |
| CDN Bundle                                                       | 23.94 KB  |
| CDN Bundle (incl. Tracing)                                       | 36.63 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 71.13 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 76.44 KB  |
| CDN Bundle - uncompressed                                        | 70.14 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 108.6 KB  |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 220.48 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 233.69 KB |
| [@&#8203;sentry/nextjs](https://github.com/sentry/nextjs) (client)                                          | 37.8 KB   |
| [@&#8203;sentry/sveltekit](https://github.com/sentry/sveltekit) (client)                                       | 35.43 KB  |
| [@&#8203;sentry/node](https://github.com/sentry/node)                                                     | 124.92 KB |
| [@&#8203;sentry/node](https://github.com/sentry/node) - without tracing                                   | 93.57 KB  |
| [@&#8203;sentry/aws-serverless](https://github.com/sentry/aws-serverless)                                           | 103.28 KB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45NC4zIiwidXBkYXRlZEluVmVyIjoiMzguOTQuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Reviewed-on: https://git.tristess.app/alexandresoro/ouca/pulls/161
Reviewed-by: Alexandre Soro <code@soro.dev>
Co-authored-by: renovate <renovate@git.tristess.app>
Co-committed-by: renovate <renovate@git.tristess.app>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nuxt/Vue: error 500 when exception captured #72696
3 participants