diff --git a/src/app/(private)/data-sources/[id]/components/GeocodingConfigFields.tsx b/src/app/(private)/data-sources/[id]/components/GeocodingConfigFields.tsx index 5bf8b709..ac7fa262 100644 --- a/src/app/(private)/data-sources/[id]/components/GeocodingConfigFields.tsx +++ b/src/app/(private)/data-sources/[id]/components/GeocodingConfigFields.tsx @@ -99,6 +99,11 @@ export function GeocodingConfigFields({ } }; + // Include previous options that are no longer in the data source column defs, so they can be removed + const allOptions = Array.from( + new Set(locationColumnOptions.map((c) => c.label).concat(columns)), + ); + return ( <> cd.name)} + allOptions={allOptions} selectedOptions={columns} onChange={onDropdownChange} /> diff --git a/src/server/mapping/geocode.ts b/src/server/mapping/geocode.ts index 4a79c5e3..af006f06 100644 --- a/src/server/mapping/geocode.ts +++ b/src/server/mapping/geocode.ts @@ -191,10 +191,11 @@ const geocodeRecordByAddress = async ( ) => { const dataRecordJson = dataRecord.json; const { columns: addressColumns } = geocodingConfig; - for (const addressColumn of addressColumns) { - if (!(addressColumn in dataRecordJson)) { - throw new Error(`Missing area column "${addressColumn}" in row`); - } + const hasColumn = addressColumns.some((c) => c in dataRecordJson); + if (!hasColumn) { + throw new Error( + `Missing address columns "${addressColumns.join(", ")}" in row`, + ); } // TODO: remove UK when other countries are supported