TypeCellOS / TypeCellOS/BlockNote

Slash menu throws "Attempting to update uninitialized suggestions menu" after toggling editable

Open
#2,701 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug
Dominant language
TypeScript
Stars
10.2k
Forks
772
Avg merge
3d 11h
Merged PRs (30d)
17

Description

Version:
@blocknote/core@0.49.0

Repro

  1. Render a BlockNoteEditor whose editable prop is toggled from a parent (e.g. switching between view and edit mode).
  2. DevTools → Performance → CPU: 6x slowdown (low-end devices reproduce naturally).
  3. Toggle the editor from non-editable to editable.
  4. Immediately type / to open the slash/suggestion menu.

Throws:

  Error: Attempting to update uninitialized suggestions menu                                                                         
      at emitUpdate (SuggestionMenu.ts:35)                  
      at SuggestionMenuView.update (SuggestionMenu.ts:90)                                                                            
      at ... prosemirror-view dispatch 
What did you expect to happen?

No errors

Steps to reproduce
  • Render a BlockNoteEditor whose editable prop is controlled by parent React state (we toggle between view/edit modes).
    -Open DevTools → Performance → set CPU to 6× slowdown (this makes the bug deterministic; in production it occurs on real users without throttling, presumably on slower devices).
  • Toggle the editor from non-editable → editable
  • Immediately type / to open the suggestion menu.
  • Observe the thrown error in the console
BlockNote version

@blocknote/core@0.49.0

Environment

Reported in production on Chrome 147 / Windows 10/11 (real user). Reproduced locally on Chrome (latest) / macOS with React 18 and CPU throttling at 6×.

Additional context

Production stack trace (sourcemapped):

  Error: Attempting to update uninitialized suggestions menu
      at emitUpdate (@blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts:35:18)
      at SuggestionMenuView.update (@blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts:90:11)
      at pluginView.update (prosemirror-view/dist/index.js:5580:31)
      at anchorInRightPlace (prosemirror-view/dist/index.js:5526:13)
      at updateState (prosemirror-view/dist/index.js:5454:13)
      at Editor.emit (@tiptap/core/src/Editor.ts:646:14)
      at dispatch (prosemirror-view/dist/index.js:5829:28)
      at callback (@blocknote/core/src/editor/managers/StateManager.ts:142:29)
      at callback (@blocknote/core/src/editor/BlockNoteEditor.ts:707:30)
      at closeMenu (@blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts:117:16)
Contribution
  • I'd be interested in contributing a fix for this issue
Sponsor
  • I'm a sponsor and would appreciate if you could look into this sooner than later 💖

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in @blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts, especially emitUpdate, SuggestionMenuView.update, and closeMenu, then reproduce the controlled editable toggle with CPU throttling. Trace the update sequence after switching to editable and typing /. Done means the slash menu opens without the uninitialized suggestions menu error.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.