{"record":{"id":"6397062268f1cd34","repo":"Budibase/budibase","slug":"project-import-does-not-support-resource-type-r","errorCode":null,"errorMessage":"Project import does not support resource type '${resourceType}'.","messagePattern":"Project import does not support resource type '(.+?)'\\.","errorType":"http","errorClass":"HTTPError","httpStatus":400,"severity":"error","filePath":"packages/server/src/sdk/workspace/projects/backups/imports.ts","lineNumber":638,"sourceCode":"    }\n    case ResourceType.AUTOMATION:\n      return generateAutomationID()\n    case ResourceType.ROW_ACTION: {\n      const tableId = idMap.get(extractTableIdFromRowActionsID(doc._id!))\n      if (!tableId) {\n        throw new HTTPError(\n          `Project import could not remap table for row actions '${doc._id}'.`,\n          400\n        )\n      }\n      return generateRowActionsID(tableId)\n    }\n    case ResourceType.WORKSPACE_APP:\n      return docIds.generateWorkspaceAppID()\n    case ResourceType.SCREEN:\n      return generateScreenID()\n    default:\n      throw new HTTPError(\n        `Project import does not support resource type '${resourceType}'.`,\n        400\n      )\n  }\n}\n\nconst validateManifest = (manifest: ProjectPackageManifest) => {\n  if (!isRecord(manifest)) {\n    throw new HTTPError(\"Project package manifest is invalid.\", 400)\n  }\n  if (manifest.artifactType !== \"project\") {\n    throw new HTTPError(\"Supplied file is not a Project package.\", 400)\n  }\n  if (manifest.formatVersion !== PROJECT_EXPORT_FORMAT_VERSION) {\n    throw new HTTPError(\n      `Unsupported Project package format version '${manifest.formatVersion}'.`,\n      400\n    )","sourceCodeStart":620,"sourceCodeEnd":656,"githubUrl":"https://github.com/Budibase/budibase/blob/a81a902e9a8fe55b467d106765f6638f12e35c49/packages/server/src/sdk/workspace/projects/backups/imports.ts#L620-L656","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Upgrade the server to the version that supports the resource type in the package.","Check the manifest's unsupportedContent list — these resources are deliberately excluded and should not appear as importable docs.","Re-export from a workspace running the target server version.","Remove unknown-type docs from the package if the feature is not needed."],"exampleFix":"// before: importing package with resourceType \"datasource_plus_v2\" on older server\n// after: upgrade server, or strip unknown docs from the package\n{ \"unsupportedContent\": [{ \"type\": \"datasource_plus_v2\", \"count\": 3, \"reason\": \"newer export\" }] }","handlingStrategy":"validation","validationCode":"const supported = new Set([\"table\",\"query\",\"automation\",\"row_action\",\"workspace_app\",\"screen\",\"datasource\"])\nfor (const type of Object.keys(manifest.resourcesByType)) {\n  if (!supported.has(type)) throw new Error(`Package contains unsupported resource type: ${type}`)\n}","typeGuard":null,"tryCatchPattern":"try {\n  await importProjectPackage(file)\n} catch (err) {\n  if (err instanceof HTTPError && err.status === 400 && err.message.includes(\"does not support resource type\")) {\n    // inform user to upgrade server or strip the resource type\n  }\n  throw err\n}","preventionTips":["Keep server and workspace versions aligned before export/import","Check unsupportedContent in the manifest before importing","Never import exports from newer versions into older servers"],"tags":["import","unsupported-resource-type","version-mismatch","project-package"],"backgroundTag":"export-version-incompatibility","analyzedSha":"a81a902e9a8fe55b467d106765f6638f12e35c49","analyzedAt":"2026-08-29T01:03:10.972Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}