Prior to Backdrop 1.23.0, the File entity type acted differently than all other entity types when returning a path via the Entity::uri() method. All other entity classes such as Node, User, TaxonomyTerm, etc. return the path to a page, but the File class returned the path to the file itself. This is because the File entity was introduced before files had individual pages.

Prior to Backdrop 1.23.0, calling $file->uri() would return the following:

print_r($file->uri());

// Returns:
array(
  'uri' => 'files/myfile.png`,
  'options' => array(),
);

In Backdrop 1.23.0 and later, $file->uri() now returns the path of the file entity, not the physical file on disk:

print_r($file->uri());

// Returns:
array(
  'uri' => 'file/10`,
  'options' => array(),
);

If your code needs the path to the file itself, it can use the $file->uri property, which remains the same as it was in all previous versions and all of Drupal 7. Auditing of all of the contributed module repository found no uses of the $file->uri() method, and only two uses of it within core itself. This API change was found to have minimal impact on the existing code that was available to audit, and it enables File entities to work with the new Entity Reference module that is part of core.

Introduced in branch: 
1.x
Introduced in version: 
1.23.0
Impacts: 
Module developers