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

  1. Confirm the tarball asset URL is downloadable (curl -I the browser_download_url)
  2. Verify the plugin archive contains valid plugin.json and schema.json
  3. Check the exact errMsg in the thrown error for the root cause (download vs metadata)
  4. 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

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


AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29). Data as JSON: /api/errors/19aeb040aca91389. Report an issue: GitHub.