scratchfoundation / scratchfoundation/scratch-editor
spork issue tracker
@cwillisf is already working on this.
Since Apr 16, 2026.
- Dominant language
- JavaScript
- Stars
- 281
- Forks
- 276
- Avg merge
- 7d 8h
- Merged PRs (30d)
- 6
Description
What this issue tracks
This issue tracks the editor regressions that followed the Blockly unforking ("spork") release in April 2026. The most urgent data-loss bugs were hotfixed and deployed in several waves during April, and the backpack corruption repair went live on 2026-06-01. A number of reported problems are still open, some of them for a while, and all of them are kept here.
To make the remaining work easier to follow, and to let each item be picked up and closed on its own, the open items have been split into individual issues, each carrying the spork label and attached to this issue as a sub-issue. This issue stays as the index and the record of what happened. Fixed items and the original detailed triage are preserved further down.
Big thanks to @redspacecat, @nimeratus, @mxmou, @Joeclinton1, @npxl32, and others for collecting reports and contributing analysis and fixes. The community-maintained list is at https://scratch.mit.edu/discuss/post/9109627/.
How the list works now
- Every open item is now its own issue, attached to this issue as a sub-issue. The Sub-issues panel above is the live status board; the list further down is the same set of issues, grouped by area for easier scanning.
- Open items across all repositories carry the
sporklabel: https://github.com/search?q=org%3Ascratchfoundation+label%3Aspork+state%3Aopen&type=issues - Found a new spork-related bug? Please open a new issue, adding the
sporklabel if you can, instead of commenting here, so it can be tracked and closed on its own. - Deploys reach scratch.mit.edu in waves, so a merged fix and a live fix are different moments. The wave log records when each fix went live.
Deploy waves (live on scratch.mit.edu)
- 2026-04-16: disappearing blocks on load (scratchfoundation/scratch-blocks#3547), wrong default in sprite-targeting dropdowns (scratchfoundation/scratch-blocks#3548).
- 2026-04-21: forever block wrapping deletes code (scratchfoundation/scratch-blocks#3549), cursed/empty inputs main case (scratchfoundation/scratch-blocks#3560, scratchfoundation/scratch-blocks#3563, scratchfoundation/scratch-editor#536).
- 2026-04-29: duplicated blocks share shadow IDs (scratchfoundation/scratch-blocks#3570, scratchfoundation/scratch-editor#543), angle-picker cross-sprite duplication (scratchfoundation/scratch-blocks#3568, scratchfoundation/scratch-editor#537).
- 2026-06-01: backpack de/serialization repair, including load-time healing of already-corrupted projects (scratchfoundation/scratch-editor#554, scratchfoundation/scratch-editor#555), shipped in scratch-gui 14.0.0.
Open items
Live status is shown in the Sub-issues panel above. The list below is the same set of issues, grouped by area for easier scanning. If your report is here and still happening for you on the current site, a comment on that issue confirming it is genuinely helpful.
Data loss:
- scratchfoundation/scratch-blocks#3652
- scratchfoundation/scratch-blocks#3653
- scratchfoundation/scratch-blocks#3654
- scratchfoundation/scratch-blocks#3655
- scratchfoundation/scratch-editor#601
- scratchfoundation/scratch-editor#633
Broken behavior:
- scratchfoundation/scratch-blocks#3656
- scratchfoundation/scratch-editor#634
- scratchfoundation/scratch-editor#635
- scratchfoundation/scratch-editor#636
- scratchfoundation/scratch-editor#637
- scratchfoundation/scratch-editor#638
- scratchfoundation/scratch-editor#639
- scratchfoundation/scratch-editor#640
- scratchfoundation/scratch-blocks#3559
- scratchfoundation/scratch-blocks#3657
- scratchfoundation/scratch-editor#641
- scratchfoundation/scratch-www#10192
Editing and interaction:
- scratchfoundation/scratch-editor#642
- scratchfoundation/scratch-editor#643
- scratchfoundation/scratch-editor#644
- scratchfoundation/scratch-blocks#3658
- scratchfoundation/scratch-blocks#3659
- scratchfoundation/scratch-editor#645
- scratchfoundation/scratch-editor#646
- scratchfoundation/scratch-editor#647
- scratchfoundation/scratch-editor#547
Visual:
- scratchfoundation/scratch-blocks#3660
- scratchfoundation/scratch-blocks#3661
- scratchfoundation/scratch-editor#648
Performance:
- scratchfoundation/scratch-blocks#3662
Believed fixed, please re-check
These are believed resolved by earlier fixes but not yet confirmed on the live site. If any still happens for you, please say so on the issue.
- scratchfoundation/scratch-editor#649
- scratchfoundation/scratch-editor#650
Archived history
Statuses below reflect the April to June 2026 triage and may be out of date; the checklist above is the current view. This section is kept for the record and for the analysis links within it.
Expand the full P0–P5 triage (April–June 2026)
P0 -- Data loss / code deletion
- ✅ Disappearing blocks on project load. Fixed by #3547 + argumentdefaults follow-up.
- ✅ Forever block wrapping deletes code. Fixed by scratchfoundation/scratch-blocks#3549. Deployed 2026-04-21.
- ✅ Cursed/empty inputs (main case). Fixed by scratchfoundation/scratch-blocks#3560 + #3563 + scratchfoundation/scratch-editor#536. Deployed 2026-04-21. Confirmed working by forum users.
- ✅ Wrong default value in sprite-targeting dropdowns. Fixed by #3548.
- ✅ Duplicated blocks share shadow IDs. Fixed by scratchfoundation/scratch-blocks#3570 + scratchfoundation/scratch-editor#543. Deployed 2026-04-29. Root cause:
stripIdsmutated original block'sconnection.shadowStateby reference, creating orphaned top-level shadows that prevent workspace rendering on sprite switch. Diagnosis from @nimeratus, clear repro from @Joeclinton1. - ✅ Code duplicates across sprites via angle picker (#537). Fixed by scratchfoundation/scratch-blocks#3568 (@Joeclinton1). Deployed 2026-04-29. Root cause: angle field event wrappers not cleared after unbind, causing double-unbind crash.
- Cursed inputs from custom block input deletion NOT fixed. Deleting a custom block input still creates a cursed/blank input. Confirmed still reproducible by @nimeratus and @redspacecat (2026-04-22). May share a code path with the "detached input fragments" reports below. Top fix priority.
- Repro video from @redspacecat (2026-04-17)
- 🔀 Backpack de/serialization corruption. Fixes merged into hotfix branch 2026-04-30 (#554 going-forward, #555 load-time repair for already-corrupted projects). Awaiting deploy. Symptoms covered:
- Variables corrupted to empty after dragging from backpack (@Joeclinton1, @redspacecat replication).
- Variable names mangled (shared "my variable" IDs across projects).
- Backpack broadcasts don't define the broadcast variable, so they can never fire (@nimeratus analysis). Independently re-confirmed by pippy2011eight (2026-04-29).
- Variable inputs break when importing a backpacked script or sprite (2026-06-11) -- may be related to other reported backpack issues
- Forum: https://scratch.mit.edu/discuss/topic/879403/, https://scratch.mit.edu/discuss/topic/879479/, https://scratch.mit.edu/discuss/topic/880836/, https://scratch.mit.edu/discuss/topic/888818/
- Detached string input fragments in custom blocks ("potato blocks"). Disconnected string input shapes appear floating in the workspace, can be typed into but not dragged. Reported by fortyonegames; ywc2 notes they "pop out of blocks they originally belonged to, particularly from custom blocks." Likely shares a code path with the custom block input deletion cursed input bug.
- Blocks joining behind the block palette deletes code.
- Reported by @redspacecat (2026-04-18)
- Repro confirmed by @kaylen-s: dragging blocks into stacks behind the palette can delete unintended parts of the stack. (2026-04-30)
- 🤔 Sprite duplication causes code loss. All reports pre-date the 2026-04-21 hotfix; QA suggests this is likely fixed by one of the earlier hotfixes (probably the shared-shadow-ID fix in #3560/#3563). Needs re-verification on the current build.
- 🔧 Deleting a hat block deletes the entire stack instead of just the hat. Community fix in scratchfoundation/scratch-blocks#3571 (@Joeclinton1) — open, CI clean as of 2026-04-30, ready for review. Undo works if you click the workspace first.
- Reported by @Joeclinton1 (2026-04-22)
- Broadcast block causes costume to disappear on one sprite. Needs re-verification.
- Dropdown bug causes code loss after save. Could not repro in test project.
P1 -- Silent wrong behavior / runtime failures / interaction failures
- Broadcast blocks not firing at runtime. Multiple independent reports. Some likely manifestations of the backpack/sprite-import scoping bug fixed by #554 + #555 (merged, not yet deployed); non-backpack runtime cases need re-verification post-deploy. @nimeratus diagnosis.
- 🔀 Broadcasts dropdown empties after importing a sprite and switching away. Same scoping path as #554. Awaiting deploy.
- 🔀 Backpacked sprites: broadcasts won't send, variables not selectable cross-sprite, can't drag code between sprites. Same cluster as #554. Awaiting deploy.
- 🔀 Events vanish after importing a backpacked sprite. Same cluster as #554. Awaiting deploy.
- 🔀 Empty variables bug: variable reporter shows empty when the variable ID in the block doesn't match the sprite/stage JSON definition. Same cluster as #554/#555 (load-time repair will heal already-corrupted projects). Awaiting deploy.
- Reported by @nimeratus (2026-04-22)
- Ghost/invisible blocks: blocks become invisible but still execute. Reload fixes it. Triggered by tab switching, duplication, or sprite switching.
- Old projects: blocks disappear on load and block palette tab disappears + can't be reopened. Reported on ChromeOS Chrome 146. May be aftermath of cursed inputs in saved projects from before the 2026-04-21 hotfix.
- https://scratch.mit.edu/discuss/topic/881000/ (reported 2026-04-30)
- Scripts fail to execute at runtime / green flag broken. Likely mostly aftermath of cursed inputs in saved projects; should diminish as users reload.
- Clone blocks not working.
- "Stop other scripts in sprite" block not working.
- Phantom lists: lists can't be read by code, can't be fully deleted, leave ghost entries in the list tab.
- Obsolete/hidden blocks broken: for-each, pen shade, counter, and the loud? boolean no longer work.
- Reported by @npxl32 (2026-04-19)
- Cannot connect hat block above stack block.
- Malformed block input freezes script execution. May be resolved by cursed inputs fix -- needs re-verification.
- Red hat block (%15 in custom block definitions) no longer works.
- Touch drag-and-drop broken: dragging costumes, blocks, and sounds between sprites does not work on tablets/phones.
- "When this sprite clicked" and broadcast dialog broken on touchscreen.
- Sprite-specific variable monitors only allow one at a time.
- Comments break the entire project (Safari-specific).
- RTL editor interactions malfunction: reversed text and operators, erratic drag behavior, and custom blocks can disappear off-screen, making the editor unusable in affected languages.
- Received a Freshdesk report from a Hebrew language program with ~100 students who are experiencing significantly disrupted classroom use
P2 -- Blocks editing broken
- "Create new broadcast/message" dialog closes immediately.
- https://scratch.mit.edu/discuss/topic/878407/, https://scratch.mit.edu/discuss/topic/878251/, https://scratch.mit.edu/discuss/topic/879434/
- Unable to repro on desktop (@kaylen-s and Marshally T.), but seems to be affecting touchscreen devices
- Keyboard shortcuts broken in block inputs: Ctrl+A in operator inputs, Ctrl+C/V in number-only inputs.
- Clipboard cleared on sprite switch.
- Middle mouse button causes uncontrolled block/canvas movement.
- Pasted blocks duplicate instead of following the mouse.
- Duplicated blocks no longer auto-attach to cursor (behavioral regression from Blockly).
- Custom blocks added from the backpack don't appear in the palette.
- Variable palette doesn't refresh on variable creation (ChromeOS/Chrome 146).
- Off-centered reporter blocks; spam-clicking reporters causes values to build up.
- Grayed-out/uneditable operator blocks.
- Code area becomes locked/unusable for certain sprites.
- Custom block hat dragged over a linking block stack copies inputs to top-left of workspace.
- Reported by @Joeclinton1 (2026-04-24)
- Dragging a block into the "Make a block" / "Make a Variable" / "Make a List" section triggers the dialog.
- Backpacking blocks from block palette broken; no text for blocks in backpacked scripts.
- https://scratch.mit.edu/discuss/3/ (reported ~2026-04-24)
P3 -- Visual / cosmetic regressions
- RTL language visual bugs: UI elements go offscreen, block outlines render LTR in RTL mode, set thumbnail popup not translated.
- Reported by @redspacecat (citing gem1001) (2026-04-22)
- Repro confirmed by @kaylen-s (2026-05-05)
- Broadcast ordering changed: "New Broadcast" no longer pinned to top of list.
- https://scratch.mit.edu/discuss/topic/878547/
- Repro confirmed by @kaylen-s (2026-05-05)
- Define block position jumps when dragging the embedded block.
- https://scratch.mit.edu/discuss/topic/878508/
- Repro confirmed by @kaylen-s (2026-05-05)
- Right-click variable menu overflows to top of screen with many variables.
- Reported via https://scratch.mit.edu/discuss/post/9113967/
- Comment resize corner blocked by scrollbar.
- Reported via https://scratch.mit.edu/discuss/post/9113967/
- Repro confirmed by @kaylen-s (2026-05-05)
- C-block shadows/outlines don't render correctly when a cap block is at the bottom.
- Visual phantom/glitching of blocks around block stack edges (Linux, Intel iGPU, X11, KDE Plasma).
- Padding issues with dropdowns. Root cause:
box-sizing: border-boxmissing in production. Fix identified by @mxmou. - Boolean blocks have an outline: https://scratch.mit.edu/discuss/topic/878300/
- Repro confirmed by Will D. (2026-05-05)
- Menu popups have a black outline: https://scratch.mit.edu/discuss/topic/878294/
- Comments: scrollbar appears when text would fit without it; dragging a comment doesn't expand workspace: https://scratch.mit.edu/discuss/topic/878331/
- Block font changed for users without Helvetica Neue: https://scratch.mit.edu/discuss/topic/878363/
- Dragging block to left edge of palette lights up the stage
- Repro confirmed by Lauren K. (2026-05-05)
P4 -- Performance / viewport
- Some projects cause severe slowness. Repro: https://scratch.mit.edu/projects/1306151552/editor/, switch to the "engine" sprite. Extreme case: 9.7 GB memory usage reported.
- Zoom snaps back when workspace scrolled past left edge.
P5 -- Low-confidence / adjacent / unreproduced
- Keyboard pops up on number-only inputs (Android and Safari/mobile): https://scratch.mit.edu/discuss/topic/878361/, https://scratch.mit.edu/discuss/topic/878420/
- Blocks from one sprite appear in another sprite's workspace when switching while running (no repro): https://scratch.mit.edu/discuss/topic/878522/
- Script drag-to-sprite broken on iPad: https://scratch.mit.edu/discuss/topic/878983/
- Can't duplicate custom blocks (may have never been possible). Raised by @Joeclinton1.
- Variables disappearing (sparse report, may be addon-related): https://scratch.mit.edu/discuss/topic/879222/
- Pen color / touching color mismatch (unclear if unfork-related): https://scratch.mit.edu/discuss/topic/879292/
- Variable duplicating in sprite (evidence destroyed, unclear if reproducible): https://scratch.mit.edu/discuss/topic/879305/
- Crash when switching from costume editor to scripts tab: https://scratch.mit.edu/discuss/topic/879510/
- "Online" sensing block always reports online (unclear if unfork-related). Reported on forum 2026-04-29.
- Custom boolean inputs in definitions not rendering correctly (single report, fixed by reload, second user couldn't reproduce). https://scratch.mit.edu/discuss/topic/880914/
- Sprite costumes skipped when running a tight
next costume+wait 0.1loop over 100+ costumes. Likely runtime/timing rather than spork. https://scratch.mit.edu/discuss/topic/881012/ - "Property of sprite" block deletes itself when changing the sprite dropdown. Workaround: edit in the sidebar first.
- Reported in https://scratch.mit.edu/discuss/post/9109627/
- Undo in costume editor replaces entire sprite with previous sprite. Hitting undo "too many times" in the costume editor reverts so far that the current sprite is replaced by the previously-edited sprite. Single report so far on ChromeOS / Chrome 132.
- Reporter checkbox spacing in flyout: FlyoutCheckboxIcon misalignment.
- Technical analysis from @mxmou
- @kaylen-s - Unable to repro (2026-05-05)
- Block input text is unnaturally large at full zoom-out: https://scratch.mit.edu/discuss/topic/878294/
- Lauren K. - Unable to repro (2026-05-05)
- Stop block dropdown uses wrong color in High Contrast Mode: https://scratch.mit.edu/discuss/topic/878363/
- Lauren K. - Unable to repro (2026-05-05)
- Say/think blocks truncate long text: https://scratch.mit.edu/discuss/topic/878935/
- Not inherently a bug and may be preferable to some users
- Samsung Internet: block text not centered, overlapping, sticking outside blocks: https://scratch.mit.edu/discuss/topic/878979/
- Deprioritized since this is not a supported browser and the issue is not reproducible elsewhere
- Can't rename sprite (not reproduced): https://scratch.mit.edu/discuss/topic/878329/
- @kaylen-s - Unable to repro (2026-05-05)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.