scratchfoundation / scratchfoundation/scratch-blocks

Deleting a custom block input leaves a blank, uneditable input

Open
#3,652 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

spork
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.

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.

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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.