nexu-io/open-design · error · SystemExit
missing generated strip for {state}: {strip_path}
Error message
missing generated strip for {state}: {strip_path} What it means
For each requested state the script expects <decoded_dir>/<state>.png to exist. If a state's strip is absent it cannot be processed, and the run aborts before writing frames-manifest.json.
Source
Thrown at skills/hatch-pet/scripts/extract_strip_frames.py:291
parser.add_argument("--chroma-key", help="Override chroma key as #RRGGBB.")
parser.add_argument("--key-threshold", type=float, default=96.0)
parser.add_argument(
"--method",
choices=("auto", "components", "slots"),
default="auto",
help="Use connected sprite components when possible, or fixed equal slots.",
)
args = parser.parse_args()
decoded_dir = Path(args.decoded_dir).expanduser().resolve()
output_dir = Path(args.output_dir).expanduser().resolve()
chroma_key = load_chroma_key(decoded_dir, args.chroma_key)
states = parse_states(args.states)
manifest = []
for state in states:
strip_path = decoded_dir / f"{state}.png"
if not strip_path.is_file():
raise SystemExit(f"missing generated strip for {state}: {strip_path}")
manifest.append(
extract_state(
strip_path,
state,
output_dir,
chroma_key,
args.key_threshold,
args.method,
)
)
(output_dir / "frames-manifest.json").write_text(
json.dumps(
{
"ok": True,
"chroma_key": {
"hex": f"#{chroma_key[0]:02X}{chroma_key[1]:02X}{chroma_key[2]:02X}",
"rgb": list(chroma_key),View on GitHub (pinned to 5be4028344)
Solutions
- List available strips: ls <decoded_dir>/*.png.
- Generate and decode the missing state's strip first.
- Narrow --states to only the states whose strips currently exist.
- Confirm --decoded-dir resolves to the right directory.
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
decoded_dir = Path("<decoded_dir>")
needed = ["idle", "running-right", "running-left"] # or the full known set
missing = [s for s in needed if not (decoded_dir / f"{s}.png").is_file()]
assert not missing, f"missing strips: {missing}" Prevention
- Generate and decode all required states before running extraction.
- Scope --states to exactly the strips you have on disk.
- Verify --decoded-dir is correct before invoking.
When it happens
Trigger: Passing --states (or --states all) where one or more named states have no corresponding <decoded_dir>/<state>.png on disk.
Common situations: Running --states all before every strip has been generated/decoded; a state that failed generation but is still listed; decoded-dir pointing at the wrong folder.
Related errors
- running-right decoded strip not found: {source}
- job {job_id} source image no longer exists: {source}
- job {job_id} decoded output is missing: {output}
- running-left mirror source image no longer exists: {source}
- unknown state(s): {', '.join(unknown)}
AI-assisted analysis of nexu-io/open-design@5be4028344 (2026-08-12).
Data as JSON: /api/errors/763e53e2aa6a13d5.
Report an issue: GitHub.