Budibase/budibase · error
Github release version not found
Error message
Github release version not found
What it means
fetchLatestRelease derives the plugin version from the GitHub release's tag_name or name via normaliseVersion. If neither yields a parsable version string (after the tarball check passed), it throws 'Github release version not found'.
Source
Thrown at packages/server/src/sdk/plugins/update.ts:107
const url = `${GITHUB_API_ROOT}/${repo}/releases/latest`
const headers = headersForRequest(token)
const response = await fetch(url, { headers })
if (response.status === 404) {
return null
}
const data = await response.json()
const tarballAsset = (data.assets || []).find(
(asset: any) => asset?.content_type === "application/gzip"
)
const tarballUrl = tarballAsset?.browser_download_url
if (!tarballUrl) {
throw new Error("Github latest release url not found")
}
const version = normaliseVersion(data.tag_name) || normaliseVersion(data.name)
if (!version) {
throw new Error("Github release version not found")
}
return {
version,
tagName: data.tag_name,
name: data.name,
htmlUrl: data.html_url,
publishedAt: data.published_at,
tarballUrl,
etag: response.headers.get("etag") || undefined,
body: data.body,
}
}
function buildUpdateInfo(
plugin: Plugin,
release: ReleaseDetails
): PluginUpdateInfo {
return {View on GitHub (pinned to a81a902e9a)
Solutions
- Retag/rename the GitHub release to include a semver version (e.g. v1.2.3) in tag_name or name.
- Ask the maintainer to fix the release naming via `gh release edit <tag> --tag v1.2.3`.
- Pin the plugin to an earlier release with a valid version tag.
- If you control the plugin repo, ensure CI publishes tags matching semver.
Example fix
// before git tag build-2026 && git push --tags // after git tag v1.2.3 && git push --tags
Defensive patterns
Strategy: validation
Validate before calling
const v = normaliseVersion(release.tag_name) || normaliseVersion(release.name)
if (!v) throw new Error(`Release ${release.tag_name} has no parsable version`) Type guard
const hasParsableVersion = (r: { tag_name?: string; name?: string }): boolean => Boolean(normaliseVersion(r.tag_name) || normaliseVersion(r.name)) Prevention
- Use strict semver tags (vX.Y.Z) for plugin releases
- Avoid marketing-style release names
- Enforce semver tags in release CI
- Edit misnamed releases with `gh release edit --tag vX.Y.Z`
When it happens
Trigger: A GitHub release whose tag_name and display name contain no recognisable semantic version (e.g. tag "latest", "stable", or a date-only name that normaliseVersion cannot parse).
Common situations: Maintainers tagging releases with non-semver names; renaming releases to marketing names ('Summer drop'); CI creating tags like "build-123" that the version normaliser rejects.
Related errors
- Github latest release url not found
- pnpm is required to run this project (pnpm-lock.yaml or pack
- npm is required to run this project (package-lock.json or pa
- yarn is required to run this project (yarn.lock or packageMa
- Must have yarn or npm installed to run build.
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/f621986a76a70d2f.
Report an issue: GitHub.