earendil-works/pi · error · Error
Invalid theme name "${name}": theme names cannot contain "/"
Error message
Invalid theme name "${name}": theme names cannot contain "/" because it is reserved for automatic light/dark theme settings. What it means
Error "Invalid theme name "${name}": theme names cannot contain "/" because it is reserved for automatic light/dark theme settings." thrown in earendil-works/pi.
Source
Thrown at packages/coding-agent/src/modes/interactive/theme/theme.ts:550
continue;
}
const themePath = path.join(customThemesDir, file);
try {
const customTheme = loadThemeFromPath(themePath);
if (customTheme.name) {
result.push({ name: customTheme.name, path: themePath });
}
} catch {
// Invalid themes are ignored here; the resource loader reports them
// during normal startup/reload.
}
}
return result;
}
function assertThemeNameIsValid(name: string): void {
if (name.includes("/")) {
throw new Error(
`Invalid theme name "${name}": theme names cannot contain "/" because it is reserved for automatic light/dark theme settings.`,
);
}
}
function parseThemeJson(label: string, json: unknown): ThemeJson {
if (!validateThemeJson.Check(json)) {
const errors = Array.from(validateThemeJson.Errors(json));
const missingColors = new Set<string>();
const otherErrors: string[] = [];
for (const error of errors) {
if (error.keyword === "required" && error.instancePath === "/colors") {
const requiredProperties = (error.params as { requiredProperties?: string[] }).requiredProperties;
for (const requiredProperty of requiredProperties ?? []) {
missingColors.add(requiredProperty);
}
continue;View on GitHub (pinned to 4af9d21d3b)
When it happens
Trigger: Thrown at packages/coding-agent/src/modes/interactive/theme/theme.ts:550 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/81003e2a687fce4b.
Report an issue: GitHub.