Budibase/budibase · error · Error

A column type has changed.

Error message

A column type has changed.

What it means

Error "A column type has changed." thrown in Budibase/budibase.

Source

Thrown at packages/server/src/sdk/workspace/tables/external/index.ts:56

const DEFAULT_PRIMARY_COLUMN = "id"

function noPrimaryKey(table: Table) {
  return table.primary == null || table.primary.length === 0
}

function validate(table: Table, oldTable?: Table) {
  if (
    !oldTable &&
    table.schema[DEFAULT_PRIMARY_COLUMN] &&
    noPrimaryKey(table)
  ) {
    throw new Error(
      "External tables with no `primary` column set will define an `id` column, but we found an `id` column in the supplied schema. Either set a `primary` column or remove the `id` column."
    )
  }

  if (hasTypeChanged(table, oldTable)) {
    throw new Error("A column type has changed.")
  }

  const autoSubTypes = Object.values(AutoFieldSubType)
  // check for auto columns, they are not allowed
  for (let [key, column] of Object.entries(table.schema)) {
    // this column is a special case, do not validate it
    if (key === DEFAULT_PRIMARY_COLUMN) {
      continue
    }
    // the auto-column type should never be used
    if (column.type === FieldType.AUTO) {
      throw new Error(
        `Column "${key}" has type "${FieldType.AUTO}" - this is not supported.`
      )
    }

    if (
      column.subtype &&

View on GitHub (pinned to a81a902e9a)

When it happens

Trigger: Thrown at packages/server/src/sdk/workspace/tables/external/index.ts:56 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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