Invalid JSON in Tag 'schema' error for whole code

Topic summary

A developer is encountering “Invalid JSON in Tag ‘schema’” errors when implementing a custom Shopify image banner section. The original code contained reversed/mirrored text in the schema block, making it unreadable and causing validation failures.

Key Issues Identified:

  • Schema attributes were written backwards (e.g., “image_picker” appeared as “rekcip_egami”)
  • Multiple validation errors: missing required ‘name’ attributes, invalid attribute usage, duplicate type declarations
  • Block structure didn’t follow Shopify’s schema requirements

Solution Provided:
A helper corrected the schema structure by:

  • Fixing the reversed text encoding
  • Properly nesting settings within blocks
  • Adding required ‘name’ fields for each block type
  • Correcting JSON syntax (quotes, commas, brackets)

Current Status:
After applying fixes, a new compatibility error emerged: existing customization settings reference block types from the old schema. The recommended resolution is to remove the section from customization settings entirely, then re-add it fresh so Shopify can initialize it with the corrected schema structure. The helper offered a screen-sharing session if issues persist.

Summarized with AI on November 25. AI used: claude-sonnet-4-5-20250929.

These are the errors I’m receiving

Invalid block ‘image_picker’: name is required
Invalid block ‘image_picker’: ‘id’ is not a valid attribute
Invalid block ‘image_picker’: ‘label’ is not a valid attribute
Invalid block ‘select’: name is required
Invalid block ‘select’: name is already taken
Invalid block ‘select’: ‘id’ is not a valid attribute
Invalid block ‘select’: ‘label’ is not a valid attribute
Invalid block ‘select’: ‘options’ is not a valid attribute
Invalid block ‘select’: ‘default’ is not a valid attribute
Invalid block ‘text’: name is required
Invalid block ‘text’: name is already taken
Invalid block ‘text’: ‘id’ is not a valid attribute
Invalid block ‘text’: ‘label’ is not a valid attribute
Invalid block ‘text’: type is already taken
Invalid block ‘url’: name is required
Invalid block ‘url’: name is already taken
Invalid block ‘url’: ‘id’ is not a valid attribute
Invalid block ‘url’: ‘label’ is not a valid attribute
Invalid block ‘select’: type is already taken