Visitar URL original
fix(runtime-vapor): push warning context during render effect updates by ValentinYoushkevich · Pull Request #15874 · vuejs/core · GitHub
Skip to content

fix(runtime-vapor): push warning context during render effect updates - #15874

Merged
edison1105 merged 1 commit into
vuejs:minorfrom
ValentinYoushkevich:fix/vapor-render-effect-warning-context
Oct 14, 2026
Merged

edison1105 merged 1 commit into
vuejs:minorfrom
ValentinYoushkevich:fix/vapor-render-effect-warning-context

Conversation

@ValentinYoushkevich

Copy link
Copy Markdown
Contributor

Warnings raised while a vapor component updates are not attributed to that component: app.config.warnHandler is skipped and the console message has no component trace. RenderEffect sets the current instance but never pushes a warning context, so on a scheduled update warn() finds an empty stack. Mount is fine because createComponent pushes the context there, and VDOM pushes it in componentUpdateFn.

This pushes the owning instance around each render effect run in dev, mirroring both. Production output is unchanged. Apps that route or fail on warnings through warnHandler, e.g. vikunja, currently miss every update-time warning.

Playground (click the button: the duplicate-key warning is printed without at <List>).

@coderabbitai

coderabbitai Bot commented Oct 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: da287433-ff3f-4d94-a07e-37d9249583e7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Oct 14, 2026

Copy link
Copy Markdown

Open in StackBlitz

@vue/compiler-core

pnpm add https://pkg.pr.new/@vue/compiler-core@15874
npm i https://pkg.pr.new/@vue/compiler-core@15874
yarn add https://pkg.pr.new/@vue/compiler-core@15874.tgz

@vue/compiler-dom

pnpm add https://pkg.pr.new/@vue/compiler-dom@15874
npm i https://pkg.pr.new/@vue/compiler-dom@15874
yarn add https://pkg.pr.new/@vue/compiler-dom@15874.tgz

@vue/compiler-sfc

pnpm add https://pkg.pr.new/@vue/compiler-sfc@15874
npm i https://pkg.pr.new/@vue/compiler-sfc@15874
yarn add https://pkg.pr.new/@vue/compiler-sfc@15874.tgz

@vue/compiler-ssr

pnpm add https://pkg.pr.new/@vue/compiler-ssr@15874
npm i https://pkg.pr.new/@vue/compiler-ssr@15874
yarn add https://pkg.pr.new/@vue/compiler-ssr@15874.tgz

@vue/compiler-vapor

pnpm add https://pkg.pr.new/@vue/compiler-vapor@15874
npm i https://pkg.pr.new/@vue/compiler-vapor@15874
yarn add https://pkg.pr.new/@vue/compiler-vapor@15874.tgz

@vue/reactivity

pnpm add https://pkg.pr.new/@vue/reactivity@15874
npm i https://pkg.pr.new/@vue/reactivity@15874
yarn add https://pkg.pr.new/@vue/reactivity@15874.tgz

@vue/runtime-core

pnpm add https://pkg.pr.new/@vue/runtime-core@15874
npm i https://pkg.pr.new/@vue/runtime-core@15874
yarn add https://pkg.pr.new/@vue/runtime-core@15874.tgz

@vue/runtime-dom

pnpm add https://pkg.pr.new/@vue/runtime-dom@15874
npm i https://pkg.pr.new/@vue/runtime-dom@15874
yarn add https://pkg.pr.new/@vue/runtime-dom@15874.tgz

@vue/runtime-vapor

pnpm add https://pkg.pr.new/@vue/runtime-vapor@15874
npm i https://pkg.pr.new/@vue/runtime-vapor@15874
yarn add https://pkg.pr.new/@vue/runtime-vapor@15874.tgz

@vue/server-renderer

pnpm add https://pkg.pr.new/@vue/server-renderer@15874
npm i https://pkg.pr.new/@vue/server-renderer@15874
yarn add https://pkg.pr.new/@vue/server-renderer@15874.tgz

@vue/shared

pnpm add https://pkg.pr.new/@vue/shared@15874
npm i https://pkg.pr.new/@vue/shared@15874
yarn add https://pkg.pr.new/@vue/shared@15874.tgz

vue

pnpm add https://pkg.pr.new/vue@15874
npm i https://pkg.pr.new/vue@15874
yarn add https://pkg.pr.new/vue@15874.tgz

@vue/compat

pnpm add https://pkg.pr.new/@vue/compat@15874
npm i https://pkg.pr.new/@vue/compat@15874
yarn add https://pkg.pr.new/@vue/compat@15874.tgz

commit: 41d80a5

@github-actions

Copy link
Copy Markdown

Size Report

Bundles

File Size Gzip Brotli
compiler-dom.global.prod.js 87.4 kB 30.7 kB 27 kB
runtime-dom.global.prod.js 119 kB 44.8 kB 40.1 kB
vue.global.prod.js 180 kB 65.1 kB 58 kB

Usages

Name Size Gzip Brotli
createApp (CAPI only) 54.6 kB 21.2 kB 19.4 kB
createApp 63.5 kB 24.5 kB 22.3 kB
createApp + vaporInteropPlugin 136 kB 49.1 kB 44 kB
createVaporApp 34.2 kB 13.2 kB 12.2 kB
createSSRApp 68.6 kB 26.5 kB 24.1 kB
createVaporSSRApp 41 kB 15.7 kB 14.4 kB
defineCustomElement 70.1 kB 26.5 kB 24.1 kB
defineVaporCustomElement 49.1 kB 18 kB 16.5 kB
overall 79.1 kB 30 kB 27.2 kB

@parsajiravand parsajiravand left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ran the new test plus a few extra cases on this branch, each in both Vapor and VDOM with the same warnHandler setup:

  • An update that throws (caught by errorHandler), then a warning from another component's update: the warning goes to that component, so the stack stays balanced through the finally.
  • A warning raised in slot content on update: at <Child>\nat <App>, the same trace as VDOM.
  • A parent update that mounts a child, both warning: each warning gets its own trace.

On minor without this PR, Vapor reports neither of the first two warnings, and in the third case only the child's. LGTM.

@edison1105 edison1105 added the scope: vapor related to vapor mode label Oct 14, 2026
@edison1105
edison1105 merged commit 34b6f08 into vuejs:minor Oct 14, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: vapor related to vapor mode

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants