windmill-labs/windmill · error
No workspace is selected.
Error message
No workspace is selected.
What it means
pipelineAiHelpers editNode requires a workspace context to resolve drafts and deploy targets; no workspace is currently selected in the UI, so the tool cannot proceed and asks the user to select one first.
Source
Thrown at frontend/src/lib/components/assets/AssetGraph/pipelineAiHelpers.ts:318
},
editNode: async (path, content) => {
deps.ensureEditable?.()
assertInFolder(path)
assertPipelineAnnotation(content)
const drafts = deps.getDrafts()
const existing = drafts.get(path)
// Base the edit on the existing draft's / deployed script object and replace
// ONLY the content — preserving hash, summary, description, tag, schema, and
// settings. Rebuilding a fresh script would wipe that metadata: deploying
// from the pane (auto_parent) would update the script while clearing it, and
// the route "Save all" path (no parent_hash) could hit the path-conflict
// branch on the occupied path.
let baseScript: Script
if (existing) {
baseScript = existing.script
} else {
const workspace = deps.getWorkspace()
if (!workspace) throw new Error('No workspace is selected.')
baseScript = await ScriptService.getScriptByPath({ workspace, path })
}
const inferred = await inferDraftAssets(baseScript.language, content)
const outputAssets = inferred.writes.length > 0 ? inferred.writes : existing?.outputAssets
const next = new Map(drafts)
next.set(path, {
localId: existing?.localId ?? deps.newDraftLocalId(),
script: { ...baseScript, content },
outputAssets,
inputAssets: inferred.reads
})
deps.setDrafts(next)
deps.onShowDrafts?.()
deps.onProposeNode?.(path)
// Deployable lineage only (see proposeNode): body writes + materialize target.
return {
detectedReads: inferred.reads.map(assetUri),
detectedWrites: dedupeAssets([...inferred.writes, ...materializeWrites(content)]).map(View on GitHub (pinned to e474e8803c)
Solutions
- Select a workspace in the Windmill UI workspace picker, then retry the tool call.
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at frontend/src/lib/components/assets/AssetGraph/pipelineAiHelpers.ts:318 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/1f48a0d6a73031f1.
Report an issue: GitHub.