scratchfoundation / scratchfoundation/scratch-editor

spork issue tracker

Open
#533 129 comments 12 reactions 1 assignee View on GitHub

@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 spork label: 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 spork label 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: stripIds mutated original block's connection.shadowState by 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.
  • 🔀 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:
  • 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.
  • 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
P2 -- Blocks editing broken
P3 -- Visual / cosmetic regressions
P4 -- Performance / viewport
P5 -- Low-confidence / adjacent / unreproduced

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.