windmill-labs/windmill · error

App "${path}" is not deployed; there is no newer version to

Error message

App "${path}" is not deployed; there is no newer version to rebase onto.

What it means

Thrown by rebaseAppDraft when the app draft exists but the app has no deployed version with files to diff against. Rebase ports draft changes onto a newer deploy; with no deploy there is no target, so the operation is rejected rather than producing a meaningless diff.

Source

Thrown at frontend/src/lib/components/copilot/chat/global/core.ts:6370

				`the version you forked from). Re-apply them with the flow edit tools — the new draft will be ` +
				`based on the latest deployed version (version ${latest.version_id}) — then deploy.`,
			latest_version: latest.version_id,
			your_changes: yourChanges
		},
		null,
		2
	)
}

async function rebaseAppDraft(path: string, ctx: WriteDraftCtx): Promise<string> {
	const { workspace, toolId, toolCallbacks } = ctx

	const draft = await getGlobalDraft(workspace, 'app', path)
	if (!draft || !draft.value || typeof draft.value === 'string' || !('files' in draft.value)) {
		throw new Error(`No app draft found for "${path}".`)
	}
	if (!(await AppService.existsApp({ workspace, path }))) {
		throw new Error(`App "${path}" is not deployed; there is no newer version to rebase onto.`)
	}

	const deployed = await AppService.getAppByPath({ workspace, path })
	const headVersion = deployed.versions?.[deployed.versions.length - 1]
	const baseVersion = draft.parentVersionId
	if (baseVersion != null && baseVersion === headVersion) {
		const message = `Draft "${path}" is already based on the latest deployed version (${headVersion}).`
		toolCallbacks.setToolStatus(toolId, { content: message })
		return JSON.stringify({
			success: true,
			alreadyLatest: true,
			latest_version: headVersion,
			message
		})
	}

	toolCallbacks.setToolStatus(toolId, { content: `Rebasing draft "${path}" onto latest...` })

View on GitHub (pinned to e474e8803c)

Solutions

  1. Deploy the app first; rebase only once a newer deploy exists
  2. Deploy the draft directly — with no prior deploy the draft is already current
  3. Confirm you targeted the correct app path and workspace
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at frontend/src/lib/components/copilot/chat/global/core.ts:6370 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/17005bde7c44cf66. Report an issue: GitHub.