If you’re encountering a “Can’t Save Record – Permission Error” message when submitting a form in Power Pages (formerly Power Apps Portals), you’re likely facing a configuration issue related to Entity Permissions, Web Roles, or Form configuration. This guide will walk you through the possible causes and step-by-step solutions to resolve it.
What Does This Error Mean?
When a user tries to create, update, or delete a record via a Portal Entity Form, Web Form, or custom submission, and lacks appropriate Entity Permissions, the portal will block the operation and return a permission error.
This can happen in several cases:
- Submitting a form
- Saving a multi-step Web Form
- Using JavaScript or Liquid to update/create a record
- Inline editing from Entity List
Common Error Messages
- “You do not have sufficient privileges to create record”
- “Access denied”
- “Save failed due to insufficient permissions”
- 403 Forbidden in browser console
Root Causes
- Entity Permission missing on the table (Dataverse entity)
- Entity Permission does not include Create/Write/Delete privilege
- Web Role is not assigned to the portal user
- Form is scoped and lacks relationship permissions
- Lookup field causes cascading permission failure
- The portal cache is not refreshed after permission updates
- JavaScript errors mask the real error
Step-by-Step Troubleshooting and Fix
Step 1: Identify the Table and Operation
Ask:
- What table (entity) is being saved? (e.g.,
Contact
,Case
,CustomRequest
) - Is it a new record (Create) or existing record (Update)?
- What fields are involved (especially Lookups)?
Step 2: Check or Create Entity Permission
- Go to Portal Management App
- Open Entity Permissions
- Create or open an Entity Permission:
- Entity/Table: e.g.,
Case
- Scope: Usually
Global
,Contact
, orAccount
- Privileges: Ensure you select:
- Create (for new records)
- Write (for updating)
- Delete (if delete involved)
- Entity/Table: e.g.,
Example:
Entity: Case
Scope: Contact
Privileges: Read, Create, Write
Step 3: Assign the Permission to a Web Role
- On the same Entity Permission, under Web Roles:
- Add the correct Web Role
- Make sure your user has that role assigned (see next step)
Step 4: Assign the Web Role to the User
- In Portal Management App
- Open Contacts
- Find your user (based on email or username)
- In the subgrid: Web Roles
- Add the Web Role containing your permission
Step 5: If Scoped, Check Relationship Access
If your permission is not Global
(e.g., it’s Contact
or Account
), the portal must verify the relationship between user and the record.
For example:
- A Contact can update their own
Case
if theCustomer
field of theCase
points to them.
To configure:
- Under your scoped Entity Permission (e.g., Contact → Case), set up:
- Child Entity Permission
- Use the correct relationship (e.g.,
case_customer_contacts
)
Step 6: Clear Portal Cache
Permission changes don’t reflect immediately unless you clear cache.
You can do this in one of the following ways:
- Go to:
https://<yourportal>.powerappsportals.com/_services/about
Click Clear Cache - Or use Power Platform Admin Center → Environment → Portal → Maintenance → Clear Config Cache
Step 7: Check Browser Console for Errors
Use Developer Tools (F12) → Console and Network tabs:
- If you see 403/401 or permission-related error in
api/data/...
call: → You likely missed a permission. - Check the form submission response payload. It may contain detailed error messages like:
{ "error": { "message": "Insufficient privilege to perform this action" } }
Step 8: Verify Form Configuration
In Entity Form / Web Form Step settings:
- Make sure Record Source Type is correctly set (Create/Edit)
- Lookup fields:
- Ensure the referenced table has Read permissions
- Complex lookups may need additional relationship permissions
Example Scenario Fix
Problem:
A portal user tries to submit a new Support Request form. The form is tied to the Case
table and uses a lookup to Product
.
Fix:
- Create Entity Permission on
Case
table:- Scope:
Contact
- Privileges: Read, Create
- Scope:
- Create Entity Permission on
Product
table:- Scope:
Global
- Privileges: Read
- Scope:
- Add both permissions to Web Role
- Assign Web Role to the portal user
- Set relationship access between
Contact
andCase
(viacase_customer_contacts
) - Clear cache
- Retest form submission
Tips and Best Practices
- Always test permissions with a real portal user, not just in Dataverse
- Start with Global scope for testing, then restrict
- Don’t forget permissions on related tables (lookups)
- Always clear cache after updates
- Use browser dev tools to inspect hidden errors
- Assign proper Web Roles on portal user Contact record