sipeed/picoclaw · warning
Session scope is required.
Error message
Session scope is required.
What it means
Validation error thrown in handleSave (web/frontend/src/components/config/config-page.tsx:320) when the config section is dirty and the session scope (dmScope) trims to empty. dmScope is a required field of the config patch, so the save aborts client-side. It is checked immediately after the workspace check and behaves identically.
Source
Thrown at web/frontend/src/components/config/config-page.tsx:320
throw new Error(t("pages.config.dashboard_password_required"))
}
if (password !== confirm) {
throw new Error(t("pages.config.dashboard_password_mismatch"))
}
if (Array.from(password).length < 8) {
throw new Error(t("pages.config.dashboard_password_min_length"))
}
}
if (configDirty) {
const workspace = form.workspace.trim()
const dmScope = form.dmScope.trim()
if (!workspace) {
throw new Error("Workspace path is required.")
}
if (!dmScope) {
throw new Error("Session scope is required.")
}
if (
form.mcpEnabled &&
form.mcpDiscoveryEnabled &&
!form.mcpDiscoveryUseBM25 &&
!form.mcpDiscoveryUseRegex
) {
throw new Error(
"MCP discovery requires at least one search method (BM25 or regex).",
)
}
const maxTokens = parseIntField(form.maxTokens, "Max tokens", {
min: 1,
})
const contextWindow = form.contextWindow.trim()
? parseIntField(form.contextWindow, "Context window", { min: 1 })View on GitHub (pinned to 49183d7e8d)
Solutions
- Enter a session scope value (as required by your deployment, e.g. a project or session identifier)
- Check the raw config page for the previously saved dm_scope value and restore it
- Ensure the field contains non-whitespace text before saving
Defensive patterns
Strategy: validation
Validate before calling
const dmScope = form.dmScope.trim()
if (configDirty && !dmScope) {
setFieldError("Session scope is required.")
return
} Try / catch
try {
await handleSave()
} catch (err) {
if (err instanceof Error) setError(err.message)
} Prevention
- Mark the session scope input as required
- Pre-fill from loaded config; block clearing it in the UI
- Document valid scope values near the field to prevent guess-and-clear behavior
When it happens
Trigger: Clearing the 'session scope' input (or entering only whitespace) and saving while configDirty is true.
Common situations: User empties the scope thinking it optional; scope value lost when switching config profiles; whitespace-only paste.
Related errors
- ${label} must be a JSON object.
- ${label}.${key} must be a string.
- Enter and confirm the new login password.
- The login passwords do not match.
- Login password must be at least 8 characters.
AI-assisted analysis of sipeed/picoclaw@49183d7e8d (2026-08-15).
Data as JSON: /api/errors/3b21f0527d011ac3.
Report an issue: GitHub.