moeru-ai/airi · warning
[Spine] No model source provided
Error message
[Spine] No model source provided
What it means
The Spine Model component's load routine requires the modelSrc prop (skeleton + atlas source). When it is empty, the component disposes any previous Spine instance, clears modelLoading, sets componentState to 'mounted' and returns — a controlled no-op, not a crash.
Source
Thrown at packages/stage-ui-spine/src/components/scenes/spine/Model.vue:128
modelIntrinsicBounds = undefined
spineStore.isModelLoaded = false
}
async function loadModel() {
await modelLoadMutex.acquire()
modelLoading.value = true
componentState.value = 'loading'
try {
if (!canvas.value) {
modelLoading.value = false
componentState.value = 'mounted'
return
}
if (!modelSrc.value) {
console.warn('[Spine] No model source provided')
disposeSpine()
modelLoading.value = false
componentState.value = 'mounted'
return
}
disposeSpine()
let assetPaths: { skeletonPath: string, atlasPath: string, skeletonFormat: 'binary' | 'json', texturePaths: string[] }
let pathPrefix = ''
let blobUrls: Record<string, string> | undefined
let rawData: Record<string, Uint8Array | string> | undefined
const isLocalBlob = modelSrc.value.startsWith('blob:')
if (isLocalBlob || modelSrc.value.endsWith('.zip')) {
const response = await fetch(modelSrc.value)
const blob = await response.blob()
const file = new File([blob], 'model.zip', { type: 'application/zip' })View on GitHub (pinned to 677329427f)
Solutions
- Provide a valid modelSrc pointing at the Spine skeleton/atlas source
- Render conditionally: <Model v-if="modelSrc" :model-src="modelSrc" /> and show a placeholder state otherwise
Example fix
// before <Model /> // after <Model v-if="modelSrc" :model-src="modelSrc" />
Defensive patterns
Strategy: validation
Validate before calling
// Before rendering the Spine model // template: <Model v-if="modelSrc" :model-src="modelSrc" />
Type guard
function isModelSource(value: unknown): value is string {
return typeof value === 'string' && value.trim().length > 0
} Prevention
- Never mount the Spine Model without a resolved modelSrc
- Show a placeholder until the model source is selected/loaded
- Keep skeleton and atlas sources together so partial sources cannot be passed
When it happens
Trigger: Rendering the Spine <Model /> without modelSrc, or with modelSrc bound to a value that is still undefined while settings/model stores load.
Common situations: No Spine model selected during onboarding; passing only identifiers and expecting the component to fetch the source; conditional sources that start as undefined.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- No Live2D model source provided.
- NO model src, cannot load VRM model.
- Electron ipcRenderer is not available. Pass it explicitly to
- Widgets element not found
- Spine ZIP must contain a .skel or .json skeleton file paired
AI-assisted analysis of moeru-ai/airi@677329427f (2026-08-18).
Data as JSON: /api/errors/53b34bc948195f72.
Report an issue: GitHub.