pbakaus/impeccable · error
no seed with id "{}"
Error message
no seed with id "{}"
What it means
The palette command looks up a seed palette by id when `--id` is provided. If no seed in the built-in SEEDS registry matches the given id, it prints this error and exits with code 2. This is a lookup failure against a fixed catalog of known palette ids.
Source
Thrown at crates/context/src/palette.rs:104
while i < args.len() {
let a = &args[i];
let next = args.get(i + 1).filter(|n| !n.is_empty());
if a == "--id" && next.is_some() {
id = next.cloned();
i += 2;
continue;
} else if a == "--from" && next.is_some() {
from = next.cloned();
i += 2;
continue;
}
i += 1;
}
let seed: &Seed = if let Some(id) = id.filter(|s| !s.is_empty()) {
match SEEDS.iter().find(|s| s.id == id) {
Some(s) => s,
None => {
io.err(&format!("no seed with id \"{}\"\n", id));
return 2;
}
}
} else {
let env_from = io.env.get("IMPECCABLE_PALETTE_SEED").cloned().filter(|s| !s.is_empty());
let key = from.filter(|s| !s.is_empty()).or(env_from);
let unit = match key {
Some(k) => hash_unit(&k),
None => random_unit(),
};
weighted_pick(unit)
};
let mood_hint = if seed.mood.is_empty() { String::new() } else { format!(" (one read: \"{}\")", seed.mood) };
let strategy_hint = if seed.strategy.is_empty() { String::new() } else { format!("\n - one example strategy: {}", seed.strategy) };
let oklch = format!("oklch({} {} {})", to_fixed(seed.l, 3), to_fixed(seed.c, 3), to_fixed(seed.h, 1));
let out = TEMPLATE
.replacen("{ID}", seed.id, 1)
.replacen("{OKLCH}", &oklch, 1)View on GitHub (pinned to 2bc2879276)
Solutions
- List available seeds (run the palette command without --id or consult its help/docs) and pick a valid id.
- Fix the spelling/casing of the seed id exactly as it appears in the catalog.
- If relying on an inherited seed, check IMPECCABLE_PALETTE_SEED/from semantics — an invalid explicit --id is not auto-corrected.
- Update scripts/docs that hardcode seed ids after upgrading the tool to a version with a changed catalog.
- Fall back to a seed color/from-source flow instead of an id if you need a custom palette.
Example fix
// before impeccable palette --id midnigt # typo // no seed with id "midnigt" // after impeccable palette --id midnight
Defensive patterns
Strategy: validation
Validate before calling
const VALID_SEED_IDS = [/* from `impeccable palette` catalog/docs */];
if (opts.id && !VALID_SEED_IDS.includes(opts.id)) {
throw new Error(`unknown palette seed id: ${opts.id}`);
} Try / catch
const r = spawnSync("impeccable", ["palette", "--id", id], { encoding: "utf8" });
if (r.status === 2 && r.stderr.startsWith(`no seed with id`)) {
console.error(`${id} is not in the seed catalog — list seeds and retry`);
} Prevention
- Copy seed ids exactly (case-sensitive) from the tool's catalog/help output.
- Re-verify hardcoded ids after upgrading the tool.
- Don't confuse seed ids with hex colors or custom palette names.
- Discover valid ids dynamically instead of hardcoding where possible.
When it happens
Trigger: `SEEDS.iter().find(|s| s.id == id)` returns None — running `impeccable palette --id <name>` with a mistyped, renamed, or nonexistent seed id; passing an id copied from docs of a different version.
Common situations: Typos or wrong casing in the seed id; referencing a seed that exists in a newer/older version of the tool; confusing a seed id with a color hex or custom palette name; scripting with a hardcoded id that drifted from the catalog.
Understand the failure class
Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.
Related errors
- concept-seed: --candidate-count must be an integer from 5 to
- Unknown ignore-rule flag: ${arg}
- Pass a rule id, e.g. ${IMPECCABLE_COMMAND} hooks ignore-rule
- overused-font is value-specific by default. Use ${IMPECCABLE
- --reason is not supported for ignore-file because detector.i
AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08).
Data as JSON: /api/errors/ad483758137c6252.
Report an issue: GitHub.