cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Super User
Super User

ERROR: Save Conflict help

I have a critical flow that just failed. I need some help determining WHY this failure occurred and how to prevent it in the future. 

Flow:

Trigger: PowerApps

Action1: Parse JSON

Logic1: Apply to each

  - Action2: Create File (Sharepoint Doc Library)

    - This is where the error occurred:

 

Save Conflict

Your changes conflict with those made concurrently by another user. If you want your changes to be applied, click Back in your Web browser, refresh the page, and resubmit your changes.
clientRequestId: 2d9401b7-1149-45f4-8bc1-77485e52c47c
serviceRequestId: 2d9401b7-1149-45f4-8bc1-77485e52c47c

 

  - Action3: Update File Properties (Sharepoint Doc Library)

    - Adds metatdata (columns) to file just created

Flow has been running fine for months.

Oddly enough, there were two files being created; error only occurred on the first. Second file was successful. 

ericonline_1-1596145596392.png

ericonline_2-1596145609080.png

Thoughts on how to troubleshoot this? 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @ericonline 

What you can do is to insert a parallel branch after the Create image file, so that you have one branch that update file properties when the Create action succeeds, and another branch to handle the situation when it fails.

The failure branch could then first inform you (Send email), then a delay, before retrying to create the image file and update the properties.

You could put the above into a Do until loop, that will retry X number of times or for Y minutes - you will have to track the success/failure so you can exit the loop when success is the result. You will also have to handle the event if the Do until loop expires (X loops, or Y minutes) - again with a parallel branching after the loop.

Just be careful with parallel branches, when merging them back into one, the Configure run after options must be set correctly 🙂

Hope the above helps a little. Kind regards, John

View solution in original post

9 REPLIES 9
Super User II
Super User II

Hello @ericonline 

Could you describe more about how the files in your flow run were created?

Do you have any other flow running on the same library/list that may have modified the file?

Anything else you could tell us about?

Kind regards, John

Hi @JohnAageAnderse ,

There really isn't much to the file creation:

- Get some attributes and base64 image(s) from PowerApps

- Parse values and base64 out

- Create file(s) from the .jpg base64

- Update properties (columns) associated with file (.jpg)

image.png

- Again, the second file in this case is successful

 

 

- There is another Flow that runs against this Document Library. 

  - How does Sharepoint handle concurrent requests to Documents?

 

Hello @ericonline 

As you are only creating the files in the flow, there should be no concurrent issues.

Could you provide screenshots of how the flow looks like, not the run, but the actions, expanded.

The first image file that is created and fails, does it have a name that already exists in the library? or are the names unique upon creation?

Are there any difference between the two files, meaning the parameters provided from PowerApps?

Could you take the parameters for the first file and manually create the file? For example by using a simple manual flow to hold the values in variables and then create the file from those?

Kind regards, John

1. image.png

2. Filenames are unique. Created in PowerApps with a milliseconds timestamp

3. Differences between two files: Filename, File Content and imageNotes

4. No issue creating the file manually...

  - image.png

Hello @ericonline 

Thank you for the information 🙂

I didn't see that you updated the file properties after the creation. Could you add a delay action between the creation and the update, just to confirm that the update is not taking place while the file is being created. Try with 30 seconds at first.

Kind regards, John

Yeah, the Flow has been running without issue up until this fail, so adding a timer won't positively affirm it as a fix. I need to know WHY this error occurs (the conditions that trigger the error message) so I can mitigate. 

This is a critical Flow, so one fail like this hurts the integrity of my solution as well as the image of Flow as a business critical tool. I want to architect the solution to mitigate against errors like this. But to do so, I need to know what causes the error.

image.png

Hello @ericonline 

What you can do is to insert a parallel branch after the Create image file, so that you have one branch that update file properties when the Create action succeeds, and another branch to handle the situation when it fails.

The failure branch could then first inform you (Send email), then a delay, before retrying to create the image file and update the properties.

You could put the above into a Do until loop, that will retry X number of times or for Y minutes - you will have to track the success/failure so you can exit the loop when success is the result. You will also have to handle the event if the Do until loop expires (X loops, or Y minutes) - again with a parallel branching after the loop.

Just be careful with parallel branches, when merging them back into one, the Configure run after options must be set correctly 🙂

Hope the above helps a little. Kind regards, John

View solution in original post

Thank you for the continued engagement @JohnAageAnderse . I'm very interested in your "do until" approach. I've used "Configure run after" in a similar manner, but have never seen the pattern that will retry a Flow if it fails. 

I know its a big ask of your time, but would you mind showing a screenshot of the "do until" actions?

I'd really appreciate it. 

Hello @ericonline 

I can show you one Do until example that we have in production - it is about getting a reason for why a change was made and we uses the Approvals to ask for that.

 

It starts with initialization of variables - one of which is used to track whether or not we had a successful outcome in the Do until loop - that is the variable "ResponseReceived" (boolean, value false).

The Do until loop will continue to loop till either:

  • the variable "ResponseReceived" is true
  • the loop has looped 4 times (see the Count field)
  • or the loop has been running for 9 hours (see the Timeout field)

An approval is requested and we have configured the Wait for approval to only wait 2 hours, after which it fails.

Do until response received or expiredDo until response received or expired

The Condition after the Wait for approval only runs if the Wait for approval succeeded, and it just checks to see if we got a response. If not, we loop one more time! If we got the response, we set the variable "ResponseReceived" to true and the Do until loop then exits.

Now if the Wait for approval expires after 2 hours, then the Condition is not executed, but the following action "ResponseComment eq Please provide a reason for the change" is executed, and we loop again, trying again to get a reason 🙂

If no success, try againIf no success, try again

Hope the above gives you the idea on how to use the Do until loop to check for success, failure, or simply giving up 🙂 We do have an action after the Do until loop that checks for the loop result, so if the loop failed (expired), then the system owner is informed and will contact the "bad" guy 😄

Kind regards, John

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

MPA Community Blog

Power Automate Community Blog

Check out the community blog page where you can find valuable learning material from community and product team members!

Top Solution Authors
Top Kudoed Authors
Users online (7,683)