RiggyTry it

Spine error: Couldn't find bone for slot

spine-ts (web, Phaser, PixiJS)
Couldn't find bone neck for slot head — SkeletonJson.readSkeletonData
spine-csharp (Unity)
Slot bone not found: neck — SkeletonJson.ReadSkeletonData

A slot in skeleton.json is attached to a bone name that the bones list does not contain. Slots are read after all bones, so the order of the bones does not matter here; the name simply does not exist.

What the slot points to

Every slot has a bone field; the loader looks that name up among the bones and throws if it is missing. The same check, with the same wording, exists for skins (Couldn't find bone … for skin …) and for IK, transform and path constraints.

"bones": [ { "name": "root" }, { "name": "neck", "parent": "root" } ],
"slots": [ { "name": "head", "bone": "neck", "attachment": "head" } ]

Why it happens

  • A bone was renamed or deleted by hand or by a script, and the slot still uses the old name.
  • A typo or a case difference: Neck against neck.
  • Slots copied from another skeleton whose bones are named differently.

How to fix it

Search bones for the name in the message. Either add the bone (with its parent) or change the slot's bone to a bone that exists. If the slot is no longer used, remove it together with its attachments in every skin and its timelines in every animation.

Check your skeleton

The Spine JSON validator finds this in a skeleton.json before the runtime does, and names the exact place. It runs in your browser; the file is not uploaded. Riggy runs the same check on every rig it builds.

Other Spine runtime errors