diff --git a/src/resources/extensions/sf/sf-db.ts b/src/resources/extensions/sf/sf-db.ts index 8c42ca7e7..c28ab9154 100644 --- a/src/resources/extensions/sf/sf-db.ts +++ b/src/resources/extensions/sf/sf-db.ts @@ -1960,6 +1960,23 @@ function parseTaskArrayColumn(raw: unknown): string[] { } } +function parseTaskArrayColumn(raw: unknown): string[] { + if (typeof raw !== "string" || raw.trim() === "") return []; + + try { + const parsed = JSON.parse(raw); + if (Array.isArray(parsed)) return parsed.map((value) => String(value)); + if (parsed === null || parsed === undefined || parsed === "") return []; + return [String(parsed)]; + } catch { + // Older/corrupt rows may contain comma-separated strings instead of JSON. + return raw + .split(",") + .map((value) => value.trim()) + .filter(Boolean); + } +} + function rowToTask(row: Record): TaskRow { const parseTaskArray = (value: unknown): string[] => { if (Array.isArray(value)) {