Unable to fetch app definition. Error: Data table '***' is not accessible

Hi guys,

I get this error message on almost every other sync.

Here is the complete error message:
"Unable to fetch app definition. Error: Data table '***' is not accessible due to: Timed out waiting for a resource. The reason is usually a very large/slow loading table or a cross-table cycle in AppSheet formulas"

The table in question is a Folder as a Table, containing around 10000 images related to items. Each item has at least three related images and other than this "ref" connection, there is no other relation.

Our inventory is expanding week after week and this type of error never occured before. Am I reaching the limits of what Appsheet can handle in terms of folder as a table?

Any tips would be much appreciated!

1 4 1,704
4 REPLIES 4

Go Manage -> Monitior -> Performance Profile -> Launch peformance analyzer.  Look for one of the successful syncs with green binoculars and click on it.  Compare the overall sync time against the total for each table.  For the worst (longest time) tables, drill down and look at wether this relates to numbre of rows or virtual columns.

Simon, 1minManager.com

Pudiste resolver? yo tengo el mismo problema

Thanks, I did some investigations in the forum as well and hence my next question 🙂

https://www.googlecloudcommunity.com/gc/AppSheet-Q-A/quot-Least-expensive-quot-method-to-define-the-...

 

Yes, it does sound like you're running into performance limits with Folder as a Table, especially given:

 

The folder has 10,000+ images

Each item references multiple related images

 

Sync errors are happening intermittently but increasingly as inventory grows

 

 

Here’s what’s likely going on and how to mitigate it:

 

 

Why This Error Happens

 

1. Folder as a Table is Slow: When you use a folder as a table, AppSheet scans the folder contents during sync. With thousands of files, this becomes a bottleneck.

 

 

2. Increasing File Count = Slower Syncs: As the folder grows, sync time increases. Once the sync time exceeds AppSheet’s internal timeout threshold, you get this error.

 

 

3. Cross-table Formula Cycles: Even if you're not explicitly creating cycles, formulas that reference many related rows (like SELECT() or FILTER() across large datasets) can slow down things significantly.

 

 

4. Images = Bigger Payloads: If AppSheet is trying to load image metadata or thumbnails during sync, that's additional load.

 

 

 

What You Can Do

 

1. Move Away from Folder as a Table

 

Best practice is to use a Google Sheet or Cloud SQL table to index your images, with columns like:

 

Image File Name or URL

 

Associated Item ID

 

Metadata (e.g., upload date, description)

 

 

Then:

 

Use a script (Apps Script, Python, or Make.com/Zapier) to populate the sheet with data from your Drive folder.

 

Store the image URLs in this sheet and reference them using a normal table, not a folder.

 

 

 

2. Paginate or Lazy Load Images

 

Limit the number of related images fetched at once using SLICE() and FILTER() formulas.

 

Example: only load the first image per item on the main view, and load others on demand in detail views.

 

 

3. Avoid Large SELECT() Across Tables

 

If you're using virtual columns or filtered refs like:

 

SELECT(Images[Key], [ItemID] = [_THISROW].[ID])

 

this can become heavy. Try using slices with preset filters instead.

 

 

4. Use External Hosting for Images

 

If possible, host images in Firebase Storage, AWS S3, or similar, and just store the links in AppSheet. This avoids Drive file fetching altogether.

 

 

5. Use Folder Structure Wisely

 

If sticking with Folder as a Table, break up the folder into smaller subfolders. For example:

 

/Items/0001/

/Items/0002/

 

Then reference only the relevant subfolder for each item.

 

 

 

Other Performance Tips

 

Disable unneeded virtual columns that do deep lookups

 

Consider turning off delayed sync and turning on server caching if available

 

Use Security Filters to limit rows loaded per user, even temporarily for testing