scratchfoundation / scratchfoundation/scratch-blocks
Deleting a custom block input leaves a blank, uneditable input
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 2.8k
- Forks
- 1.6k
- Avg merge
- 4h 51m
- Merged PRs (30d)
- 12
Description
Deleting an input from a custom block definition leaves behind a blank input that cannot be typed into (a "cursed input"), and the custom block then misbehaves. Still reproducible on the current build, re-confirmed by community testers through mid-May 2026.
Repro (simple case)
Create a custom block with two inputs, put something in the second input, then delete the first input. Switch to another sprite and back: the block disappears from the input, but the custom block still behaves as if the block were still there.
- Repro video (@redspacecat): https://github.com/user-attachments/assets/f90a8ae1-f51b-4946-8acc-9c1988320087
- Forum: https://scratch.mit.edu/discuss/topic/878621/
Worse case and analysis (@Joeclinton1)
Empty number inputs are fine; an empty boolean input is the trigger. It seems to fire once you have more than one usage of a custom block where at least one usage has an empty boolean input, and you then delete any input that would move the boolean. Saved projects end up with broken custom block definitions (an error appears when editing the block). Putting an operator block into a boolean input and rebuilding the workspace can also make it vanish.
- Impact demo: https://github.com/user-attachments/assets/27fb9eaa-55b3-4f79-84ab-535019b89dd7
- Minimal repro: https://github.com/user-attachments/assets/8671f34f-5739-4fc0-bc4d-ee3d1e4ac8e2
- Most-minimal repro: https://github.com/user-attachments/assets/20c3b47b-fe8b-4557-9817-8bbd31d0e036
Also seen: a related error when editing a custom block and pressing undo (@nimeratus), with independent replication (@medlans).
May share a code path with the detached "potato" input bug (scratchfoundation/scratch-blocks#3653).
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.
Research direction
Start by reproducing the simple and minimal cases described in the issue, focusing on custom blocks with empty boolean inputs and deleting an input that moves the boolean. Trace the custom block definition, workspace rebuild, and undo paths, and compare with scratchfoundation/scratch-blocks#3653. Done means deleted inputs no longer leave blank uneditable inputs, and saved projects remain editable and behave correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100