Script exceeded execution time limit of 30 seconds

Hi All,

I’m trying to run this automation script that works perfectly on my test base of ~10 records but throws this error when I move it to my real base with ~1100 records.

Error: Script exceeded execution time limit of 30 seconds

The below code is based on this tutorial here, tweaked slightly with recommendations I found in another similar question. Any help or ideas would be appreciated!
Learn Airtable scripting #1: basics & removing duplicates with Giovanni Briggs - YouTube (from Automate All the Things channel)

var table = base.getTable(“Table 1”);

var query = await table.selectRecordsAsync ({

fields: ["Name" ]



let duplicates = query.records.filter((record)=>{

return query.records.find((potentialDuplicate)=>{

   return record.getCellValue("Name") === potentialDuplicate.getCellValue("Name") && !==;




let updates = => {

return {


    fields: {

        "Duplicate": true





while (updates.length>0){

//removed await in front of the below Async to see if that would improve time


updates = updates.slice(50);


Not surprising - think that snippet makes (1100-1)->squared calls to try to find duplicates. e.g., for each row, look at the other 1099 rows - really bad design.

You need to use hash indices to do this fast.


Thanks! I will try it out.

On a different note…

All asynchronous methods must use await to function correctly. It’s possible that some updates might not get saved correctly if not await-ed.


This topic was solved and automatically closed 3 days after the last reply. New replies are no longer allowed.