Meituan-Dianping/mpvue · error
Multiple root nodes returned from render function. Render fu
Error message
Multiple root nodes returned from render function. Render function should return a single root node.
What it means
Raised in the dev branch of the instance's _render method after calling the render function: the returned vnode (or its children normalization) revealed more than one root-level node. Vue 2 component render functions must return exactly one root vnode; multiple siblings, a return of an array, or text plus an element at the top level all violate this and the extra nodes are dropped/truncated during patching.
Source
Thrown at src/core/instance/render.js:114
try {
vnode = render.call(vm._renderProxy, vm.$createElement)
} catch (e) {
handleError(e, vm, `render function`)
// return error render result,
// or previous vnode to prevent render error causing blank component
/* istanbul ignore else */
if (process.env.NODE_ENV !== 'production') {
vnode = vm.$options.renderError
? vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e)
: vm._vnode
} else {
vnode = vm._vnode
}
}
// return empty vnode in case the render function errored out
if (!(vnode instanceof VNode)) {
if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {
warn(
'Multiple root nodes returned from render function. Render function ' +
'should return a single root node.',
vm
)
}
vnode = createEmptyVNode()
}
// set parent
vnode.parent = _parentVnode
return vnode
}
// internal render helpers.
// these are exposed on the instance prototype to reduce generated render
// code size.
Vue.prototype._o = markOnce
Vue.prototype._n = toNumber
Vue.prototype._s = toStringView on GitHub (pinned to 6c5d78ee04)
Solutions
- Wrap the multiple elements in a single root element (often a <div>) or use a renderless single root
- Return exactly one vnode from the render function — combine siblings under one createElement call
- Move stray top-level text/comments inside the root element
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/core/instance/render.js:114 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Meituan-Dianping/mpvue@6c5d78ee04 (2026-09-02).
Data as JSON: /api/errors/32723b9bd8b273a1.
Report an issue: GitHub.