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.
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.
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.
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.
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:
That did the trick for me. Here are screenshots of my Flow / Power Automate:
Below is a view of from the "Configure after run" settings from Step 5.
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 @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.
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.
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>
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.
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 😕
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)
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?
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.