Docs Checklists & Reference

Quick Reference: Common Troubleshooting


Block doesn’t appear in the editor inserter after upload

Check the debug panel for validator errors. Most common causes:

  1. block.json is missing or has invalid JSON (Rule 1)
  2. index.js is missing (Rule 5)
  3. index.asset.php is missing (Rule 6)
  4. wp-primitives is in the dependencies array (Rule 10: causes silent load failure)

Element controls not appearing in the inspector

The element handle is not in index.asset.php. For each element you use, add wpt-element-{name} to the dependencies array. Without this, window.wptElementDefs does not contain the element definition when the block loads.


Element options showing as empty dropdowns

window.wptElements is defined but the element returned an empty object from resolve(). Check the browser console, there will be a [wpTruss] Element "..." not found in registry warning. This confirms the handle is missing from index.asset.php.


Block canvas is blank on first insert

Placeholder text is missing from canvas elements. Every el() call for a heading, description, or button must provide a fallback string as the last argument:

el( attr.headingLevel || 'h2', { className: ... }, attr.heading || 'Placeholder heading' )

Spacing changes in the editor don’t appear on the frontend

Spacing is set via CSS custom properties in inline styles, not modifier classes. If render.php is not setting --wpt-{slug}-padding on the root element, the style.css fallback applies instead. Check that the spacing map in render.php is present and that the inline style attribute is passed to getblockwrapper_attributes().


Validator rejects block with “transition: not permitted”

Remove all transition:, animation:, and @keyframes from style.css. Motion is reserved for the V2 Motion Layer. Use hover state changes without transitions, change the property directly, without an easing curve, until V2 ships.


Block audit shows no registry pills (no ✓ structure, ✓ spacing)

The block has not been re-registered against the current Panel Registry. Go to Custom Blocks → Block Audit and click Re-register on the block. This syncs the attribute definitions with the current registry options.