“I can’t download file from the PowerApps attachments control, instead of downloading the files it keeps telling me BlobNotFound!”
If you work with files in a PowerApps app, the attachments control from ‘Edit form’ might to be the most common approach. Add the ‘Edit form’ to your app, link it to a SharePoint list, add the Attachments column, and copy/paste it outside of the form. You get a control that’ll allow you to add, remove, and download files, all without much extra effort.

But for some time by now this control seems to have problems when downloading the files. You click on the attachment, new browser tab will open, and you’ll see an error message instead of the file – BlobNotFound. “The specified blob does not exist”.

Why, and how do you make it work again?
What’s the problem?
The problem seems to be related to a new formula bar. In the past the attachments control allowed you to define what it will display and what’s behind it. Show the file name and when you click on it download the file using path.
Now it sets the ‘on click’ value to Id instead of the file uri.

That’s not really something you can download, hence the error message.
UPDATED: Fixing the PowerApps BlobNotFound
The original solution recommended using the Legacy formula bar where you could easily switch the Value, but the feature was retired. Meaning there’s a need for a different workaround!
Since you can’t change what columns from the attachments collection will the control use, you’ll have to adjust the input collection.
Files attached to SharePoint item
If you check the collection with SharePoint item attachments, you’ll see it has 4 columns, e.g.
LookUp(
ColumnsQueryList,
ID = 9
).Attachments

AbsoluteUri to the file, DisplayName, Id and Value. By default the Attachments control uses the DisplayName and Value (which is mapped to the Id). You need to “remap” it, to add the link to the item into the Value column.
To give the control no other choice, drop the default Id and Value columns from the input collection, e.g.
DropColumns(
<item>.Attachments,
Value,
Id
)
Now add a new column called Value with the link to the file. This column will work in a way that every time users click on the attachment, it’ll call the url in this column. As we’re talking about SharePoint attachments, let’s build a direct download link as explained in a previous article.
AddColumns(
DropColumns(
<item>.Attachments,
Value,
Id
),
Value,
$"https://<SPtenant>.sharepoint.com/sites/<siteName>/_layouts/download.aspx?SourceUrl={AbsoluteUri}"
)

If you need the attachment id for any reason, you can remove it from the Drop(…) function after this. It seems that if you drop it at least for a while the attachments control will stop referencing it.
Files store in SharePoint document library
The solution is very similar when working with a SharePoint document library – you must still work with the DisplayName and the Value columns. There’s a small difference though as the document libraries don’t have DisplayName and Value columns.
However, you can add such columns if you want with a single function.
There’s no need to remove anything, just adding. Add the DisplayName that’ll contain the file name with extension, and a Value column with a download link, e.g.
AddColumns(
<library/collectionWithFiles>,
DisplayName,
'File name with extension',
Value,
$"https://<SPtenant>.sharepoint.com/sites/<siteName>/_layouts/download.aspx?SourceUrl={'Full Path'}"
)

Click on the file and it will download, problem fixed. Publish the app and the attachments will be usable again. And if it doesn’t help you can always replace the attachments view mode with a gallery.
Files store in Dataverse file column
Very similar approach as for a SharePoint library can be used also for files stored in the Dataverse, the only difference being the download link.
Matthew Devaney explained the process of building such link a his blog post. Build the link for your environment and use it for the Value column. Add also the DisplayName column to show the file name.
AddColumns(
<table/collectionWithFiles>,,
Value,
$"https://<environmentUrl>/api/data/v9.2/<tableName>(<recordId>)/<columName>/$value",
DisplayName,
<columnName>.FileName
)

Summary
The PowerApps BlobNotFound is an annoying one as it’s something that you’d expect to work, that should work, but it doesn’t. You need a workaround. The previous one is not accessible anymore, but with a bit of data transformation you can still fix it.
If you can’t change the control settings, change the control input. Remove the default columns (if needed) and add your own columns – columns the control expects will be there and is ready to use. Or you can replace the control view mode with a gallery. Add a gallery, build the link to each of the files, and download it from their using a custom clickable control.
You save my day. Enabling of Legacy formula bar no one refers that.
For those wanting to continue using the attachment control outside of a form, just surround it in it’s own mini form. Just have to run FormUpdate on both forms prior to patching your datasource.
Hi Eric, Thankyou, Your solution helped.
We experienced this same problem(401 error) when another user attempted to download the file. As a solution, we created a popup that displays a form(Display form) containing only an attachment card without any other fields. We then pass the specific record to this popup form’s Item, which has successfully allowed other users to download the file.
Hello Jayendran,
if it’s only to display the attachments and to download them I prefer to use a gallery with download links: https://tomriha.com/download-sharepoint-files-directly-from-power-apps-no-flow/. The attachments control is so unreliable that I prefer to avoid it unless there’s no other way (meaning only to upload files).
Hi thanks this helped a lot, one thing you can do is change to Legacy formula bar, make the setting changes then revert back to the new legacy formula bar and the setting changes should still work
Hi, I encountered with the same issue, and I tried the solution mentioned in this article, unfortunately that did not work.
Then I user Form, then Data Card and issue got fixed. Don’t use Data card separately, it should be the part of form.
Just to let most readers this legacy formula bar cannot be found in the retired section anymore most probably it got removed, i hope there is another solution for this
Hello Yaswini,
I just updated the article with an updated solution.
This is no more There in Retired 🙁
Hello Phanee,
I just updated the article with an updated solution.
Hi, as some others mentioned, Legacy bar is no longer available in the retired updates settings
Hello M,
I just updated the article with an updated solution.
This is one of the many reasons that Power Apps and Power Automate are horrible tools!
but if you make the attachment mandatory then you ‘Id is required’
If I make the attachment mandatory then I get ‘Id is required’ when I try to upload, is that expected?
Is there a solution for new forms? I have some that use collections to change the displayname of files to be appended prior to saving and this is now not working in new forms. I am getting an error stating Field ‘Id’ is required