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

  1. 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.