{"record":{"id":"8c8de524f80af338","repo":"windmill-labs/windmill","slug":"please-fill-version-input","errorCode":null,"errorMessage":"Please fill version input","messagePattern":"Please fill version input","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src/lib/components/triggers/http/OpenAPISpecGenerator.svelte","lineNumber":101,"sourceCode":"\t\treturn (data as OpenapiHttpRouteFilters).route_path_regex !== undefined\n\t}\n\n\tfunction getWebhookFilters() {\n\t\treturn webhookAndHttpRouteFilter.filter(isWebhookFilter)\n\t}\n\n\tfunction getHttpRouteFilters() {\n\t\treturn webhookAndHttpRouteFilter.filter(isHttpRouteFilter)\n\t}\n\n\tfunction buildInfo() {\n\t\tconst isTitle = !emptyString(title)\n\t\tconst isVersion = !emptyString(version)\n\n\t\tlet info: OpenapiV3Info | undefined = undefined\n\n\t\tif (isTitle && !isVersion) {\n\t\t\tthrow new Error('Please fill version input')\n\t\t} else if (!isTitle && isVersion) {\n\t\t\tthrow new Error('Please fill title input')\n\t\t} else if (isTitle && isVersion) {\n\t\t\tlet isContact =\n\t\t\t\t!emptyString(contactName) || !emptyString(contactUrl) || !emptyString(contactEmail)\n\t\t\tlet isLicense = !emptyString(licenseName) || !emptyString(licenseUrl)\n\t\t\tinfo = {\n\t\t\t\ttitle,\n\t\t\t\tversion,\n\t\t\t\tdescription,\n\t\t\t\tcontact: isContact\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tname: contactName,\n\t\t\t\t\t\t\turl: contactUrl,\n\t\t\t\t\t\t\temail: contactEmail\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tlicense: isLicense","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/frontend/src/lib/components/triggers/http/OpenAPISpecGenerator.svelte#L83-L119","documentation":"buildInfo() in the OpenAPI spec generator builds the info object only when title and version are consistent. A non-empty title with an empty version is invalid for OpenAPI v3 (version is required when info is present), so it throws this error to force the user to complete the version field.","triggerScenarios":"In OpenAPISpecGenerator, filling the Title input but leaving Version empty, then generating the spec (via the info function).","commonSituations":"Users fill title out of habit and ignore version; default version placeholder cleared; form partially restored from state where version was lost.","solutions":["Enter a value in the Version input (e.g. '1.0.0') alongside the title","Clear the Title field as well if you do not want an info block at all (info becomes undefined)","Wire the version input as required in the UI when title is provided"],"exampleFix":"// before\ntitle: My API\nversion: (empty)\n// after\ntitle: My API\nversion: 1.0.0","handlingStrategy":"validation","validationCode":"if (title && !version) throw new Error('Please fill version input');","typeGuard":"function hasCompleteInfo(t: string, v: string): boolean {\n  return (!t && !v) || (t !== '' && v !== '');\n}","tryCatchPattern":"try { buildInfo(); } catch (e) {\n  if (e.message === 'Please fill version input') { focusField('version'); }\n  else throw e;\n}","preventionTips":["Make Version required whenever Title is filled (and vice versa)","Default the version input to '1.0.0'","Run the emptyString checks in the form's submit validation"],"tags":["openapi","validation","form"],"backgroundTag":"schema-validation-failed","analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}