cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
neeraj_bharati
Advocate II
Advocate II

Getting error The file is locked for shared use by when updating the file properties

Using Microsoft Flow, I am trying to set default value in a metadata column "Column_1" from a sharepoint OOTB "Created By" column whenever a new item created in a document library. Document library has certain content types associated so when I create a new document by choosing a content type, the Office online opens the document in Edit mode. 

 

I am getting below error when I try to update column "Column_1" using "Update file properties" action

 

Error 423: The file <filename.xlsx> is locked for shared use by <email id>. clientRequestId:<xxx> serviceRequestId:<xxx>

 

How can I check the status of the file if locked or not? Any help is much appreciated. 

 

 

 

 

49 REPLIES 49

How i deal with this is to run a increasing delay action i.e. 2 minutes, 10 minutes, 1 hour, 3 hours, 1 day etc.

 

The delay action runs after a failed attempt to access the excel file.

seanmcev
Frequent Visitor

Hello, 

 

So I encountered this error when I was creating a flow to update a Word Template based on D365 field values then create a docx file in SharePoint. My flow is prompted on D365 record create. So I would get the error whenever I would test the flow. However, when I prompted the flow with fresh data it worked as desired. So maybe try adding the now() expression to your flow. That prevented me from getting this error. It might be getting hung up on the file existing or being opened for edits previously in the flow. 

 

I am relatively new to Power Automate so sorry if my terminology is wrong. 

juresti
Continued Contributor
Continued Contributor

Hi @seanmcev, Where do you add this Now() expression at?

That would depend on the flow. Likely whatever step is giving you this error. In my case, I added it to the Create File (SharePoint) action at the end of my file name. 

 

The Now() expression is found here in dynamic content. 

 
 

@juresti 

 

Sorry my image is not uploading it is in the expression section of dynamics content and its it "utcNow()"

Thank you @Gristy , that approach worked for me.  I did the following steps to solve this for my situation:

 

  1. Initialized a boolean variable called UpdateSucceeded to False
  2. created a Do Until loop based on UpdateSucceeded where it will stop looping when it equals True
  3. In the loop, I first set the UpdateSucceeded variable to True
  4. Then I updated the file what was giving the lock error (in my case a SharePoint Library file property)
  5. This is the important part:  then in the next action, a Set Variable action, I set UpdatedSucceeded to False.  However, in the properties of Set Variable, you need to select "Configure after run",  and uncheck "is Successful" and check "has failed" and "has timed out".  This way UpdatedSucceeded will only be set to False when the file update failed.  If the file update is successful, then UpdatedSucceeded is left as True and the Do Unitl loop is exited.
  6. Then I set a delay, that stepped up in value as @Gristy suggested.

That did the trick for me.  Here are screenshots of my Flow / Power Automate:

File_Locked_Work_Around.png

 

Below is a view of from the "Configure after run" settings from Step 5.

File_Locked_Work_Around_Condition.png

glad you got it sorted, its a shame it does not have auto-retry built in or a wait a bit like nintex/sharepoint designer did!

Hi @chris1234 

 

Any chance you could post a screen shot of your "Do Until" loop?

Hi @JustinR, I added screenshots to my original post.  Hope that it helps.  Thanks, Chris1234

Hi @chris1234 ,

 

Thanks so much for that. I have added that to my flow and but can't test it as the file lock is somewhat intermittent. 

 

It's just a pity that MS won't spend the time to fix the issue at the source.

 

Thanks again.

JR

Just put in a small delay and the file will be unlocked if the flow used it.

I have put in a delay for 5min then i update the file and this works, i believe a shorter delay is possible maybe 30sec or such.

Talyorlak
Frequent Visitor

Hey Guys,

 

So we cannot delete file due to the limitation for Excel Online or other else,

How about we check out first and at the end check in the file.

I tested. It succeeded.

 

2020-06-08_17-07-55.png

It is possible to update a locked file using a System Update. Use send HTTP request to SharePoint with the following body:

 

<Request xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="Javascript Library">
    <Actions>
        <Method Name="SetFieldValue" Id="4" ObjectPathId="3">
            <Parameters>
                <Parameter Type="String">FieldName</Parameter>
                <Parameter Type="String">Value</Parameter>
            </Parameters>
        </Method>
        <Method Name="SystemUpdate" Id="5" ObjectPathId="3" />
    </Actions>
    <ObjectPaths>
        <Property Id="1" ParentId="0" Name="Web" />
        <Method Id="2" ParentId="1" Name="GetList">
            <Parameters>
                <Parameter Type="String">/sites/SiteName/ListName</Parameter>
            </Parameters>
        </Method>
        <Method Id="3" ParentId="2" Name="GetItemById">
            <Parameters>
                <Parameter Type="Number">@{triggerBody()?['ID']}</Parameter>
            </Parameters>
        </Method>
        <StaticProperty Id="0" TypeId="{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}" Name="Current" />
    </ObjectPaths>
</Request>

Jacques1_0-1593641437595.png

 

Unfortunately I found this topic when trying to resolve another issue: Whenever i use this to update a file property in SharePoint, and the file is locked by a user, the client application is not aware of this update and it overwrites the updated SharePoint list item with the value of the item locked by the user (via Auto-save even). Version history shows that the update succeeded and gets overwritten later. 

 

In my case users want a custom document "reference" other than the standard DocID. Whenever a file gets uploaded, i use Power Automate to generate a reference, that in turn is used to fill placeholders in the newly uploaded document.

 

Maybe this solution can work for some.

Hi @Talyorlak,

I encountered the same problem. Maybe I know what did you input in your "check out file" action? Greatly appreciate if you can help.

rusgesig
Regular Visitor

Well it's 2 years later and I have the same issue. Even if I create a new document library and copy the file over to that it still says locked for use. 

It's really sad to see the same problems persisting over years and microsoft doing nothing to fix it. Honestly considering moving back to task scheduler and python scripts for a lot of microsoft flow work 😕

juresti
Continued Contributor
Continued Contributor

@rusgesig 

 

That is correct, the files still remain locked.

We found that the following day the file is unlocked for us.

This was manageable since our flows that access sharepoint files do not run multiple times in a day.

 

When we do run multiple times, we convert it to tab delimited text and run it through our flow that handles tab delimited files.

Text files don't appear to cause this issue.

 

 

Try this as a solution to locked files.

In the flow.

 

- Check out the file.
- Discard check out (This will unlock the file)

 

steve_hendy
Resolver I
Resolver I

So much for collaboration https://support.microsoft.com/en-us/office/collaborate-on-word-documents-with-real-time-co-authoring....

 

So why can't it be made for Flows to collaborate?

ShaneITAutomate
Post Patron
Post Patron

Hi all,

 

This one had been plaguing me for a few years and i finally thought of a stupid solution adapting someone else's solution above of the 7min delay trick, however if you also have many flows that run many "Get File" Excel or "List Rows etc" actions that trick doesn't work, however if you put the 7min delay at the very front of the flow after the initial get file or list rows.. I know its not the best solution as you probably also want to update some meta data after the flow marks the file as complete etc however it does work, if your worried about the flow and have turned off the "error reporting spam" use the terminate function/send email.

you can use the API to get the lock status:
https://abc.sharepoint.com/sites/somesite/subsite/_api/Web/lists/getbytitle('Library%20Name')/items(123)/File/LockedByUser 

123 is the ID of the item you want to check.

Trying to use delays will be a never-ending battle of adjusting and crossing your fingers that it will be the magic number of minutes.

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Users online (3,190)