Budibase/budibase · error · HTTPError

Project import does not support resource type '${resourceTyp

Error message

Project import does not support resource type '${resourceType}'.

What it means

The import's ID-generation switch only handles a known set of resource types (TABLE, QUERY, AUTOMATION, ROW_ACTION, WORKSPACE_APP, SCREEN, etc.). If a document carries a resourceType outside that set, the default branch throws this 400 error. It guards against importing unsupported or newer resource kinds into a server that cannot handle them.

Source

Thrown at packages/server/src/sdk/workspace/projects/backups/imports.ts:638

    }
    case ResourceType.AUTOMATION:
      return generateAutomationID()
    case ResourceType.ROW_ACTION: {
      const tableId = idMap.get(extractTableIdFromRowActionsID(doc._id!))
      if (!tableId) {
        throw new HTTPError(
          `Project import could not remap table for row actions '${doc._id}'.`,
          400
        )
      }
      return generateRowActionsID(tableId)
    }
    case ResourceType.WORKSPACE_APP:
      return docIds.generateWorkspaceAppID()
    case ResourceType.SCREEN:
      return generateScreenID()
    default:
      throw new HTTPError(
        `Project import does not support resource type '${resourceType}'.`,
        400
      )
  }
}

const validateManifest = (manifest: ProjectPackageManifest) => {
  if (!isRecord(manifest)) {
    throw new HTTPError("Project package manifest is invalid.", 400)
  }
  if (manifest.artifactType !== "project") {
    throw new HTTPError("Supplied file is not a Project package.", 400)
  }
  if (manifest.formatVersion !== PROJECT_EXPORT_FORMAT_VERSION) {
    throw new HTTPError(
      `Unsupported Project package format version '${manifest.formatVersion}'.`,
      400
    )

View on GitHub (pinned to a81a902e9a)

Solutions

  1. Upgrade the server to the version that supports the resource type in the package.
  2. Check the manifest's unsupportedContent list — these resources are deliberately excluded and should not appear as importable docs.
  3. Re-export from a workspace running the target server version.
  4. Remove unknown-type docs from the package if the feature is not needed.

Example fix

// before: importing package with resourceType "datasource_plus_v2" on older server
// after: upgrade server, or strip unknown docs from the package
{ "unsupportedContent": [{ "type": "datasource_plus_v2", "count": 3, "reason": "newer export" }] }
Defensive patterns

Strategy: validation

Validate before calling

const supported = new Set(["table","query","automation","row_action","workspace_app","screen","datasource"])
for (const type of Object.keys(manifest.resourcesByType)) {
  if (!supported.has(type)) throw new Error(`Package contains unsupported resource type: ${type}`)
}

Try / catch

try {
  await importProjectPackage(file)
} catch (err) {
  if (err instanceof HTTPError && err.status === 400 && err.message.includes("does not support resource type")) {
    // inform user to upgrade server or strip the resource type
  }
  throw err
}

Prevention

When it happens

Trigger: Importing a project package exported from a newer Budibase version that contains resource types this server build doesn't recognize; a corrupted manifest where resourcesByType lists an unknown type; docs with a missing/garbled resourceType field.

Common situations: Rolling back a server to an older version and importing exports produced by a newer one; third-party generated packages with custom resource types; partially upgraded environments.

Related errors


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