Budibase/budibase · error · Error

No license key found

Error message

No license key found

What it means

Thrown when BUDICLOUD_URL is set but the license key cannot be retrieved via licensing.keys.getLicenseKey(). The Budibase Cloud AI file-upload endpoint requires a license key for authentication/entitlement, so uploads without one are rejected before the request is even made.

Source

Thrown at packages/server/src/sdk/workspace/ai/llm/bbai.ts:273

        const result = await response.json()
        if (typeof result.id !== "string") {
          throw new Error("File id not found")
        }
        return unwrapLiteLLMFileId(result.id)
      } else {
        const fileBuffer = Buffer.from(await fileBlob.arrayBuffer())
        const base64 = fileBuffer.toString("base64")

        if (isImage) {
          return `data:${type};base64,${base64}`
        }
        if (!env.BUDICLOUD_URL) {
          throw new Error("No Budibase URL found")
        }
        const licenseKey = await licensing.keys.getLicenseKey()
        if (!licenseKey) {
          throw new Error("No license key found")
        }

        const response = await fetch(
          `${env.BUDICLOUD_URL}/api/ai/upload-file`,
          {
            method: "POST",
            headers: {
              "Content-Type": "application/json",
              [constants.Header.LICENSE_KEY]: licenseKey,
            },
            body: JSON.stringify({
              data: base64,
              filename,
              contentType: type,
            }),
          }
        )

View on GitHub (pinned to a81a902e9a)

Solutions

  1. Re-activate or update your Budibase license key in the admin settings
  2. Check the license is still valid/not expired in your Budibase account
  3. Ensure the service can reach the licensing endpoint to sync the license cache
  4. Retry the upload after the license sync completes
Defensive patterns

Strategy: validation

Validate before calling

const licenseKey = await licensing.keys.getLicenseKey()
if (!licenseKey) {
  throw new Error("A valid Budibase license is required for AI file upload")
}

Try / catch

try {
  await uploadToCloud(file)
} catch (e) {
  if (e.message === "No license key found") {
    return { error: "Activate or renew your Budibase license to use AI file upload" }
  }
  throw e
}

Prevention

When it happens

Trigger: createBBAIClient file upload path on an installation with an expired, missing, or not-yet-activated license; getLicenseKey() returning undefined because the license has never been synced or was deactivated.

Common situations: Trial expiry; license key deleted or rotated in the Budibase account; offline installations where the license could not be refreshed; running the upload from a service without license cache access.

Related errors


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