LowCodeStacks™
Sign in

Fix "The requested operation is invalid" when Power Apps Patch fails

Network error when using Patch: the requested operation is invalid. Read the real reason, then fix the usual causes: unique values, Person columns, required columns.

Power AppsFix a problem6 min read

Checked against Microsoft Learn · 7 sourcesPosted by the Maker DeskHow we write guides

The banner says "Network error when using Patch function: The requested operation is invalid", and nothing else. It comes up again and again on Microsoft's forums, and it's confusing because the network is usually fine. Power Apps uses this one wording for several different failures. The data source refused the save and the banner doesn't say why, so the fix starts with finding that reason.

Note

Checked against Microsoft Learn on 21 October 2026. The causes below come from solved Microsoft Q&A and Power Platform Community threads, each matched to Microsoft's documentation.

  • Saving shows "Network error when using Patch function: The requested operation is invalid".
  • SubmitForm on the same list works, but your own Patch doesn't.
  • It fails for some records or some users, and works for others.

Read the real reason

Microsoft's Patch reference says this kind of failure can come from connectivity, permissions or data conflicts, and recommends catching it with IfError. Show the message instead of the generic banner:

powerfx
IfError(
    Patch(Requests, Defaults(Requests), { Title: txtTitle.Text, Owner: cmbOwner.Selected }),
    Notify("Save failed: " & FirstError.Message, NotificationType.Error)
)

If the message is still vague, open Live monitor (in Studio, Advanced tools > Open live monitor), play the app, save once, and select the failed patch event for your list. Its details include the HTTP request and the response, which shows what SharePoint or Dataverse actually replied and usually names the column.

The error also carries a kind. Microsoft's list of error kinds explains it: 2 is a missing required value, 8 is a constraint that was violated (such as a duplicate in a unique column), 10 is a read-only column, and 11 is a failed validation check.

From the banner to the fix
  1. "The requested operation is invalid"
  2. Catch it with IfError or Monitor
  3. Read the message and the error kind
  4. Match it to a cause below
  5. Fix the data, not the network

The usual causes

What the message or kind points toCauseFix
Kind 8, a duplicateA column has Enforce unique values on, and the value is already in the listCheck before saving, see below
A Person column, often multi-selectA person's record has no Email, so SharePoint can't find themBuild each person with an email, see below
Kind 2, or "Field 'X' is required"A required column is empty, often Title when you create an itemGive every required column a value on create
Kind 11, a validation messageThe list's or the column's validation formula rejected the valueMatch the rule, or show its message before saving
Works for you, fails for othersThe user can't edit the listGive them Edit (Contribute) permission on the list

A column that must be unique

In SharePoint, a column can be set to Enforce unique values (open the list's Settings, select the column, and look under More options). A second item with the same value is refused, and Microsoft documents the comparison as case-insensitive, so "INV-100" and "inv-100" count as the same value. It's the cause suggested in the most-upvoted Microsoft Q&A answer on this exact error.

Check first, and give a clear message instead of the banner:

powerfx
If(
    IsBlank(LookUp(Requests, InvoiceNumber = txtInvoice.Text)),
    Patch(Requests, Defaults(Requests), { Title: txtTitle.Text, InvoiceNumber: txtInvoice.Text }),
    Notify("Invoice " & txtInvoice.Text & " is already in the list.", NotificationType.Warning)
)

The = test on a text column delegates to SharePoint, so the check works on big lists.

A Person value without an email

In a solved Power Platform Community thread, a multi-select Person column failed with this error (kind 8) because the people's records had lost their Mail value: the records were built from Office365Users results and re-used after the first save. SharePoint identifies a person by the Claims and Email in the record, so a blank email can't be saved.

Build each person once, with the email filled in, and keep the result in a variable so a second Patch uses the same records:

powerfx
Set(
    varOwners,
    ForAll(
        Filter(cmbOwners.SelectedItems, !IsBlank(Mail)),
        {
            Claims: "i:0#.f|membership|" & Lower(Mail),
            DisplayName: DisplayName,
            Email: Mail,
            Department: "",
            JobTitle: "",
            Picture: ""
        }
    )
);
Patch(Requests, galRequests.Selected, { Owners: varOwners })

Accounts without a mailbox (some guests and service accounts) have no Mail, which is why the Filter drops them. Our guide to patching Person, Choice and Lookup columns has the single-person and combo-box versions.

Required and validated columns

SubmitForm fills in what the form shows, so a required column with a default can pass there and fail in your Patch. When you create an item with Defaults(...), include every required column, Title included. If the list or column has a validation formula (list Settings > Validation settings, or a column's Column validation), the value must satisfy it; show the rule's message to the user before saving rather than after.

If you renamed or removed columns in the list after adding it to the app, refresh the data source in Studio (in the Data pane, select ... next to the list and choose Refresh), so the app writes to the columns that exist now.

On SQL Server: check the primary key

Microsoft's SQL Server documentation is direct: the connector assumes tables have a primary key, and a table without one is read-only in Power Apps. Add a key (an identity column is the simplest) and refresh the data source. Tables with triggers need a stored procedure for writes instead of a direct Patch or SubmitForm.

Still stuck? Narrow it down

Do

  • Patch only Title first. If that saves, add the other columns back one at a time; the column that brings the error back is the one to fix.
  • Compare with SubmitForm on the same list: if the form works, the difference is in the values your Patch sends.
  • Keep IfError around every Patch in the finished app, with a message the user can act on.

Don't

  • Don't assume it's the network because the banner says so: check the message and the error kind first.
  • Don't patch text into a Person, Choice or Lookup column: each needs a record.

Sources

Did this fix it?

Comments

No comments yet. Share what worked for you.

Sign in to comment. Comments show under a display name you choose, never your email.