windmill-labs/windmill · error

Please fill title input

Error message

Please fill title input

What it means

buildInfo() mirrors the version rule: a non-empty Version with an empty Title also yields an invalid OpenAPI info object, since title is required when info is present. It throws this error to force a complete title+version pair.

Source

Thrown at frontend/src/lib/components/triggers/http/OpenAPISpecGenerator.svelte:103

	function getWebhookFilters() {
		return webhookAndHttpRouteFilter.filter(isWebhookFilter)
	}

	function getHttpRouteFilters() {
		return webhookAndHttpRouteFilter.filter(isHttpRouteFilter)
	}

	function buildInfo() {
		const isTitle = !emptyString(title)
		const isVersion = !emptyString(version)

		let info: OpenapiV3Info | undefined = undefined

		if (isTitle && !isVersion) {
			throw new Error('Please fill version input')
		} else if (!isTitle && isVersion) {
			throw new Error('Please fill title input')
		} else if (isTitle && isVersion) {
			let isContact =
				!emptyString(contactName) || !emptyString(contactUrl) || !emptyString(contactEmail)
			let isLicense = !emptyString(licenseName) || !emptyString(licenseUrl)
			info = {
				title,
				version,
				description,
				contact: isContact
					? {
							name: contactName,
							url: contactUrl,
							email: contactEmail
						}
					: undefined,
				license: isLicense
					? {
							name: licenseName,

View on GitHub (pinned to e474e8803c)

Solutions

  1. Enter a value in the Title input alongside the version
  2. Clear the Version field if no info block is desired (info becomes undefined)
  3. Mark title as required when version is set

Example fix

// before
title: (empty)
version: 1.0.0
// after
title: My API
version: 1.0.0
Defensive patterns

Strategy: validation

Validate before calling

if (version && !title) throw new Error('Please fill title input');

Type guard

function hasCompleteInfo(t: string, v: string): boolean {
  return (!t && !v) || (t !== '' && v !== '');
}

Try / catch

try { buildInfo(); } catch (e) {
  if (e.message === 'Please fill title input') { focusField('title'); }
  else throw e;
}

Prevention

When it happens

Trigger: In OpenAPISpecGenerator, filling Version but leaving Title empty, then generating the spec (via the info function).

Common situations: Auto-filling version like '1.0.0' but skipping title; form state where title was reset but version persisted.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03). Data as JSON: /api/errors/10d8ed44ed290e80. Report an issue: GitHub.