Budibase/budibase · error · Error
${errMsg}
Error message
${errMsg} What it means
Catch-all handler for the tarball download/unzip/metadata phase of githubUpload. It rethrows the underlying error's message, mapping the specific string 'unexpected response Not Found' to 'Github release tarball not found'. Any failure during downloadUnzipTarball or getPluginMetadata surfaces through here.
Source
Thrown at packages/server/src/api/controllers/plugin/github.ts:95
throw new Error("Github latest release url not found")
}
try {
path = await downloadUnzipTarball(
pluginLastReleaseTarballUrl,
pluginName,
headers
)
return await getPluginMetadata(path)
} catch (err: any) {
if (path) {
deleteFolderFileSystem(path)
}
let errMsg = err?.message || err
if (errMsg === "unexpected response Not Found") {
errMsg = "Github release tarball not found"
}
throw new Error(errMsg)
}
}
View on GitHub (pinned to a81a902e9a)
Solutions
- Confirm the tarball asset URL is downloadable (curl -I the browser_download_url)
- Verify the plugin archive contains valid plugin.json and schema.json
- Check the exact errMsg in the thrown error for the root cause (download vs metadata)
- Re-publish the release with a complete, valid tarball
Example fix
// plugin repo structure // before (missing metadata) // dist/ // index.js // after // dist/ // index.js // plugin.json // schema.json
Defensive patterns
Strategy: try-catch
Validate before calling
const head = await fetch(assetUrl, { method: 'HEAD' })
if (head.status !== 200) throw new Error('Release tarball asset is not downloadable') Try / catch
try {
await installPlugin({ source: 'GITHUB', url })
} catch (err) {
if (err.message === 'Github release tarball not found') {
console.error('Release asset 404 — republish the release')
} else {
console.error('Plugin metadata invalid:', err.message)
}
} Prevention
- Validate the plugin archive contains plugin.json and schema.json before publishing
- Ensure the release asset is not deleted or replaced with a broken upload
- Inspect the propagated errMsg to distinguish download vs metadata failures
- Test install with the exact tarball locally before publishing
When it happens
Trigger: The tarball download 404s (asset deleted), the archive fails to unzip, or getPluginMetadata cannot find/parse plugin.json / schema.json in the extracted directory.
Common situations: Release asset removed after tagging; malformed or corrupted tarball; plugin repo missing required metadata files (schema.json/plugin.json) in dist; network interruption mid-download.
Related errors
- Unknown plugin type - check schema.json: ${schema.type}
- Please run in a plugin directory - must contain package.json
- Please run in a plugin directory - must contain schema.json
- package.json is missing one of 'name', 'version' or 'descrip
- No skeleton found in latest release.
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/19aeb040aca91389.
Report an issue: GitHub.