diff --git a/packages/server/src/api/controllers/row/utils/basic.ts b/packages/server/src/api/controllers/row/utils/basic.ts index 02f92e15e9..aed0ba3232 100644 --- a/packages/server/src/api/controllers/row/utils/basic.ts +++ b/packages/server/src/api/controllers/row/utils/basic.ts @@ -108,6 +108,11 @@ export function fixArrayTypes(row: Row, table: Table) { [FieldType.ARRAY, FieldType.BB_REFERENCE].includes(schema.type) && typeof row[fieldName] === "string" ) { + // Handling old single user type + if (schema.constraints?.type !== "array") { + continue + } + try { row[fieldName] = JSON.parse(row[fieldName]) } catch (err) { diff --git a/packages/server/src/integrations/base/sql.ts b/packages/server/src/integrations/base/sql.ts index e61089ef2c..5ae09d44f2 100644 --- a/packages/server/src/integrations/base/sql.ts +++ b/packages/server/src/integrations/base/sql.ts @@ -764,7 +764,10 @@ class SqlQueryBuilder extends SqlTableQueryBuilder { field: FieldSchema ): field is JsonFieldMetadata | BBReferenceFieldMetadata { return ( - field.type === FieldType.JSON || field.type === FieldType.BB_REFERENCE + field.type === FieldType.JSON || + (field.type === FieldType.BB_REFERENCE && + // Handling old single user type + field.constraints?.type === "array") ) }