Airtable 'Update a record' or 'Upsert a record' not working due to incorrect Record ID

Hi everyone,

I am trying to upsert records but am getting the error ‘The operation failed with an error. [403] Invalid permissions, or the requested model was not found. Check that both your user and your token have the required permissions, and that the model names and/or ids are correct.’

Situation

I have multiple Airtable bases which I want to aggregate into a single main base. To do this, I started off with syncing one of my bases to the main base:

  • In the Airtable builder hub, I created a personal access token with every possible scope selected and access to ‘All current and future bases in all current and future workspaces’, so I should be good on permissions
  • In my scenario, I created a ‘Search Records’ module to get the records from my main base (including the record ID). See picture 1 and 2.
  • Then I created a ‘Upsert a record’ module, in which I select my main base and some test values. If I omit the ‘Record ID’ field, the scenario works as expected. However, when I insert the record ID, which I believe is the correct value, as I see it is a valid ID starting with ‘rec…’ in the preview, I get the error mentioned above. See picture 3.

I believe I have sufficient permissions on my token, and the record id is what it’s supposed to be. Can anyone tell me what I’m doing wrong?

Relevant pictures:

Hello, that is very strange, I always have had issues with Upsert. Do you think it could be an issue with the Base synchronization? I am not totally sure if Airtable will allow you to manually update a sync’d Base or table, this could be what is giving the permissions error even though the ID is correct.

What if you tried to update the record from the base that you are syncing from as an idea?

An option as a possible workaround would be to add a router after the “Search Records” module and have two routes, the first one which will update the found record if there is a RecordID and the other to Create a New Record if the RecordID is empty. This would effectively do what the ‘Upsert” module should be doing. If you are still getting errors on the Update route, let me know it may be because of the syncing.

Hello,

The issue is caused by the fact that you’re searching in the Buddy to Buddy Rheden base and Buddy’s table, but you’re trying to upsert a record in the Dashboard Nederland base and AMF table.

To use the Upsert a record operation in Dashboard Nederland base and AMF table, you must provide a record ID that belongs to the “Dashboard Nederland” → “AMF” table.

If the bases are connected via Airtable’s synced tables, Airtable should automatically create a field that stores the original record ID.

If you’re linking the data manually, you’ll need to create your own relationship fields, store the target table record IDs there, and use those fields for reference when upserting.

1 Like

Thanks for your replies! Using synced tables is unfortunately not an option for me, as I am trying to sync many bases to this one dashboard, while Airtable only accepts a limited amount of syncs to a single base. But your answer still gave me insight into what the reason was for the error to display.

I will try the router approach and see whether it works!

1 Like