Joint session with Vercel: How to build intelligent storefronts (May 15th)

`structureBuilder.list is not a function` error when accessing desk

7 repliesLast updated: Nov 29, 2025

Hello! I keep getting this sort of error and I cannot understand what might cause it. Is this a versioning issue? All packages are up-to-date (as of time of typing this)
I cannot enter det desk, but Vision plugin works.



TypeError: (0 , _structureBuilder.list) is not a function
    at _default (/static/js/app.bundle.js:168275:49)
    at serializeStructure (/static/js/app.bundle.js:382416:31)
    at <http://localhost:3333/static/js/app.bundle.js:167462:65>
    at Observable._subscribe (/static/js/app.bundle.js:96047:21)
    at Observable._trySubscribe (/static/js/app.bundle.js:2986:25)
    at Observable.subscribe (/static/js/app.bundle.js:2972:22)
    at DistinctUntilChangedOperator.call (/static/js/app.bundle.js:124910:23)
    at Observable.subscribe (/static/js/app.bundle.js:2967:31)
    at MapOperator.call (/static/js/app.bundle.js:27473:23)
    at Observable.subscribe (/static/js/app.bundle.js:2967:31)
AI Update

The error (0, _structureBuilder.list) is not a function indicates an import issue with the Structure Builder API in your Sanity Studio configuration. This is a common problem when migrating to or working with Studio v3, where the import patterns changed significantly.

The Problem

Your code is likely trying to import Structure Builder methods incorrectly. In Studio v3, you need to import the Structure Builder object from the correct location and use it properly in your configuration.

The Solution

Here's how to fix it:

1. Check Your Import in sanity.config.ts

Make sure you're importing and configuring the structureTool correctly:

// sanity.config.ts
import {defineConfig} from 'sanity'
import {structureTool} from 'sanity/structure'
import {structure} from './structure'

export default defineConfig({
  // ...other config
  plugins: [
    structureTool({structure}),
    // ...other plugins
  ],
})

2. Check Your Structure File

In your structure definition file (e.g., structure/index.ts or deskStructure.js), make sure you're using the correct import pattern. The S object is provided as a parameter to your structure function, not imported:

// structure/index.ts
import type {StructureResolver} from 'sanity/structure'

export const structure: StructureResolver = (S) =>
  S.list()
    .id('root')
    .title('Content')
    .items([
      S.documentTypeListItem('post').title('Posts'),
      S.documentTypeListItem('author').title('Authors'),
      // ...more items
    ])

Don't do this (common mistake):

// ❌ WRONG - Don't import S separately
import S from '@sanity/desk-tool/structure-builder'

3. Common Migration Issues

If you're migrating from Studio v2, note these changes according to the Structure Builder documentation:

Quick Checklist

The fact that Vision plugin works but the desk doesn't confirms this is specifically a Structure Tool configuration issue, not a broader Studio problem. Once you update your imports to the v3 pattern, you should be able to access the desk again.

Show original thread
7 replies

Was this answer helpful?

Sanity – Build the way you think, not the way your CMS thinks

Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.

Related contributions