Canvas App Error: “Row Size Exceeded” – Causes, Fixes, and Best Practices
When building Canvas Apps with Dataverse, you might see this error:
The total size of the columns used in the database command exceeded the database limit.
Cannot create a row of size 8087 which is greater than the allowable maximum row size of 8050.
Why This Happens
Dataverse runs on top of Azure SQL and follows its row size limit (\~8 KB).
Here’s why you might hit this error:
1. Too Many Columns Selected
Canvas Apps often load all columns by default, including:
- Text and memo fields
- Lookup and choice fields
- Images and files
- Calculated or rollup fields
2. Temporary SQL Row Exceeds 8 KB
- Behind the scenes, Dataverse queries try to build a temporary row.
- If the sum of all columns exceeds 8,060 bytes, SQL blocks the operation.
How to Fix the Row Size Issue
1. Only Select Required Columns
Use `ShowColumns()` to reduce row size:
ClearCollect(
colContacts,
ShowColumns(
Contacts,
"contactid",
"firstname",
"lastname",
"emailaddress1",
"mobilephone"
)
)
This avoids large and unused columns like `Notes`, `Owner`, or `Image`.
2. Avoid Large Fields in the Main Query
- Skip Images or Files in galleries.
- Load multiline text fields only when needed.
- Use `LookUp` or `OnSelect` to fetch details on-demand.
3. Use Delegation and Filtering
Never load the entire table if unnecessary:
ClearCollect(
colContacts,
ShowColumns(
Filter(Contacts, StartsWith('First Name', TextSearchBox.Text)),
"contactid", "firstname", "lastname", "emailaddress1"
)
)
Keeps rows smaller and queries faster.
4. Split Large Tables
If your table has 100+ fields:
- Move rarely used fields to a related child table.
- Keeps your main table lean and performant.
5. Leverage Dataverse Views
Create a Dataverse view that includes only the columns your app needs.
- Connect Canvas App to the view instead of the full table.
- This drastically reduces row size and avoids SQL errors.
Quick Fix Example
Instead of loading everything from Contacts:
ClearCollect(
colContacts,
ShowColumns(
Contacts,
"contactid", "firstname", "lastname", "emailaddress1", "mobilephone"
)
)
This reduces row size, prevents SQL errors, and speeds up your Canvas App.
Pro Tips for Developers
- Avoid Select All Columns in galleries or data collections.
- Monitor delegation warnings to prevent partial data loads.
- Optimize performance and memory usage with lean queries.
Summary:
The Dataverse row size limit in Canvas Apps is governed by SQL Server’s 8 KB (8,060 bytes) per-row limit. Exceeding this limit can occur when tables have too many text columns, lookup/choice fields, or file/image columns. When this happens, saving or retrieving data in Canvas Apps can fail.
To avoid this, follow best practices:
- Select only the required columns in your queries.
- Avoid pulling large fields (like file/image) in your main queries.
- Use filtering and delegation to limit the data retrieved.
- Consider connecting your Canvas App to Dataverse views optimized for performance.
By carefully managing the row size and retrieved fields, architects and developers can prevent database errors and ensure smooth Canvas App performance.
Published on:
Learn moreRelated posts
New quality updates to modern controls in canvas apps
This release delivers quality and reliability improvements across nine modern controls in canvas apps, including Combo Box, Text Input, and Da...
How to change the attachment on a note in canvas apps
Changing the attachment of a note is super easy in a model-driven app, not so much in a canvas app. Learn how to do it! The post How to change...
How to add a title and description when uploading an attachment in canvas apps
Uploading attachments through model-driven apps allows you to specify title & description but canvas app doesn't. Learn how you can! The...
How to work with Dataverse Attachments in canvas apps
Learn how to work with the Attachments Dataverse table in canvas apps. We will review how to create, delete, and view existing attachments! Th...
How to work with Dataverse Notes in canvas apps
Learn how to work with the Notes Dataverse table in canvas apps. We will review how to create, edit, delete, and view existing notes! The post...
Best Practices: Canvas Apps & Power Pages Integration
Golden Rule:Canvas Apps are NOT designed for external users. Power Pages is.Most best practices focus on when to avoid integration and how to ...
Integrating Canvas Apps into Power Pages
Step-by-Step Guide & Limitations Overview Power Pages and Canvas Apps solve different problems: However, in some scenarios, you may want t...
5 Dataverse Date Fields and the Date Picker in Canvas Apps
Within Dataverse we can configure date fields in 5 different ways. When we use these fields in a Power Apps Canvas App they will behave slight...
Generating and Sharing Screen in PDFs from D365 Sales Using Canvas Apps
In many Dynamics 365 Sales implementations, sales users need a simple and intuitive way to preview a quote, generate a PDF, and share it with ...
Power Apps – Deprecation of Preview Copilot Controls in Canvas Apps
Starting on February 2, 2026, the following preview Copilot features in Power Apps Canvas Apps will be removed: Copilot Control: Add a Copilot...
