I have a single base and two tables. Within each table, there’s a linked field that points to records in the other table.
For the sake of simplicity, let’s call them:
Table A
Table B
Both tables have many, many linked fields. For example, 1 record in table A has let’s say over 950 linkages to other records in table B.
Now, I’m in the process of updating an Automation with a script that updates a single record in table A using the updateRecordAsync() function, like this:
await table_A.updateRecordAsync(record_id, {
“linked_field_to_records_in_table_B”: array_of_record_ids
});
^ When the array_of_record_ids is small (like between 1 and 5 entries), this call works fine.
But as soon as the array_of_record_ids is size 30 or larger, I keep getting these sorts of errors:
Error: network timeout at: https://api.airtable.com/v2/bases/app.../tables/tbl.../records/update
at main on line 47
I suspect the problem has to do with the fact that Airtable is attempting to update all the back-links from B->A; however, I’ve hit a wall, because…
- Airtable doesn’t provide a way to APPEND new linked records to an existing field… you have to wholesale replace everything (which is naturally very expensive).
Now someone is going to say, “well you should be updating 50 records at a time using updateRecordsAsync() instead!” … that approach would be to make 30 calls to update the backlinks, like:
await table_B.updateRecordAsync(record_id, {
“linked_field_to_records_in_table_A”: array_of_record_ids
});
^ However, the size of this array_of_record_ids is around 950 (not 30), which is even worse.
So… it honestly seems like this is a limitation of Airtable altogether… meaning, they don’t expect you to ever have more than about 25 linked records in a single field, ever… and if you do, forget about using Automation or API calls on that data, because any changes to that field will consistently fail.
