Watch a live product demo 👀 See how Sanity powers richer commerce experiences

JavaScript Error - Error: Max listener limit exceeded at 1004

7 replies
Last updated: Jun 23, 2021
Hi Sanity fam, I've been working on a project for a client and just started receiving some Javascript errors stating:
Error: Max listener limit exceeded at 1004
. This started intermittently yesterday and said
at 1001
. It has since stopped being intermittent and is now permanently stating
Error: Max listener limit exceeded at 1004
. I previously figured it was due to some complex deskStructure stuff going on but have now completely removed all the complexities and am attempting to load an
S.editor()
for a specific ID and it's not loading a thing. Restarted the local instance of Studio, cleared by cookies and cache.
Thoughts?
Jun 21, 2021, 11:52 PM
Any insight on to what causes this/what the solution is for this? The max listeners error started cropping up at the end of Sunday and rendered the Studio completely unusable by early afternoon yesterday. I continued to check throughout the afternoon and evening without avail.
My solution was to duplicate our Production dataset into another dataset and to point our Studio and Web app to that dataset. I wouldn't want to consider this a long term solution. Any insight on how to prevent this or how to clear it up once the limit has been reached?
Jun 22, 2021, 2:19 PM
Hey Troy! This looks like something that needs to be looked at by a Sanity backend engineer. I’ll pass it along to the team.
Jun 22, 2021, 6:13 PM
projectId: hpttb1hr
dataset: production

🙏
Jun 22, 2021, 10:48 PM
Hi
user G
, are you still seeing the error? From our logs it seems like there are currently 0 active listeners on the project.
If the issue persists or happens again, could you try deleting all documents of type
system.listener
from your dataset to see if that helps?
Jun 23, 2021, 6:24 AM
Thanks for the insight on
system.listener
. Not seeing it since moving datasets and removing a
listenerQuery
call. Is there a better way to clean those up to prevent these issues from occurring?
Jun 23, 2021, 6:26 AM
Our backend should normally take care of cleaning them up, so using
documentStore.listenQuery
as follows should be alright: https://www.sanity.io/docs/structure-builder-typical-use-cases#980dd321b9db .
Here's another example of using it in a
useEffect
hook, ensuring you clean up the subscription:
function useHelp(documentId: string) {
  const [help, setHelp] = useState<IHelpMenu | undefined>();
  useEffect(() => {
    const sub = documentStore
      .listenQuery(`*[_id == "${documentId}"][0]`)
      .pipe(tap((val: IHelpMenu | undefined) => setHelp(val)))
      .subscribe();
    return () => sub.unsubscribe();
  }, [documentId]);
  return help;
}
Are you following any of these implementations?
Jun 23, 2021, 7:47 AM
Our backend should normally take care of cleaning them up, so using
documentStore.listenQuery
as follows should be alright: https://www.sanity.io/docs/structure-builder-typical-use-cases#980dd321b9db .
Here's another example of using it in a
useEffect
hook, ensuring you clean up the subscription:
function useHelp(documentId: string) {
  const [help, setHelp] = useState<IHelpMenu | undefined>();
  useEffect(() => {
    const sub = documentStore
      .listenQuery(`*[_id == "${documentId}"][0]`)
      .pipe(tap((val: IHelpMenu | undefined) => setHelp(val)))
      .subscribe();
    return () => sub.unsubscribe();
  }, [documentId]);
  return help;
}
Are you following any of these implementations?
Jun 23, 2021, 7:47 AM

Sanity– build remarkable experiences at scale

The Sanity Composable Content Cloud is the modern headless CMS that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Related answers

Get more help in the community Slack

TopicCategoriesFeaturedRepliesLast Updated
After adding the subtitle and running this code npm run graphql-deploy It does nothingSep 15, 2020
how to limit a reference to just one entry in Studio reference input side versus the default as-many-entries-as-you-fill-in-an-array...Sep 18, 2020
Is it possible to fetch more than one "_type" using GROQ?Nov 2, 2020
I want to add a view with the Structure builder (S.view.component) where I list similar documents based on the title. What...Sep 23, 2020
Is there a structure builder example where the format of each preview for the document list is modified?Feb 3, 2021
I have an array of references to a country schema type but it always just returns NULL values for meJan 30, 2021
Hi, I need help with a query for getting the url of an image asset. Here is what I've been trying, but I only get the _ref...Dec 1, 2020
Sanity UI looks brilliant :smiley: Is something like the current date picker possible at the moment? I’m not sure if anicon...Dec 21, 2020
Hey everyone. I have been coding and may have potentially accidentally deleted something. Does anyone know how to resolve...Dec 26, 2020
Hello everyone and happy new year :raised_hands::skin-tone-2:, I have a problem with outputting Portable Text :disappointed:...Jan 1, 2021

Related contributions

Clean Next.js + Sanity app
- Template

Official(made by Sanity team)

A clean example of Next.js with embedded Sanity ready for recomposition.

Cody Olsen
Go to Clean Next.js + Sanity app

Blog with Built-in Content Editing
- Template

Official(made by Sanity team)

A Sanity-powered blog with built-in content editing and instant previews.

Go to Blog with Built-in Content Editing