I was trying to build an app based on Airtable using Appsheet. With one case I got an error in Appsheet, that turned out to be a limit on the Airtable site. It looks like the API does not handle more than 21 columns well. Is this a familiar problem?
See below the feedback from Appsheet support, who really took their time to find out what was going on:
RESPONS APPSHEET SUPPORT:
After quite a lot of testing and investigation, I believe I have finally found the root cause of the problem.
Roughly speaking, each time AppSheet reads data from AirTable, AppSheet will send a request that contains a list of parameters to AirTable, and some of these parameters are names of the columns to be read. It appears that currently, AirTable imposes a hard limit of at most 21 parameters. Any request that contains more than 21 parameters will be rejected.
Since the table that you were trying to add to your app had more than 21 columns, the number of parameters in the request to read this table exceeded 21, and thus the request was rejected by AirTable.
I have tried a workaround, which was to avoid specifying any column to read. For many other data storage providers, not specifying specific columns is equivalent to requesting all columns. Unfortunately, AirTable handles this differently, and only returns some but not all of the columns present in the table (although the number of columns returned is larger than 21). Additionally, the columns returned appear to be unstable, i.e. a different set of columns is returned with each new request. As a result, this solution will not work since AppSheet needs to be able to read the same columns in the table every time the app syncs.