You might get this error when setting up a new Sitecore instance somewhere. The item in question is a /sitecore/layout/Devices item that Sitecore needs in order to operate normally.
There can be several reasons why this is happening:
- You are running Sitecore up to 9.x, and your master / web databases are corrupted, and they miss this item. There is no real solution to this, other than providing a functioning database to your Sitecore instance;
- You are running Sitecore 10.x or later, and you forgot to update the configuration; the dataProvider configuration used to look like this:
<dataProvider ref="dataProviders/main" param1="$(id)">
<prefetch role:require="ContentManagement or Standalone" hint="raw:AddPrefetch">
<sc.include file="/App_Config/Prefetch/Common.config" />
<sc.include file="/App_Config/Prefetch/Core.config" />
</prefetch>
</dataProvider>
But will have to be updated to:
<dataProvider type="Sitecore.Data.DataProviders.CompositeDataProvider, Sitecore.Kernel">
<param desc="readOnlyDataProviders" hint="list">
<protobufItems type="Sitecore.Data.DataProviders.ReadOnly.Protobuf.ProtobufDataProvider, Sitecore.Kernel">
<filePaths hint="list">
<filePath>$(dataFolder)/items/$(id)</filePath>
<modulesFilePath>/sitecore modules/items/$(id)</modulesFilePath>
</filePaths>
</protobufItems>
</param>
<param desc="headProvider">
<dataProvider ref="dataProviders/main" param1="$(id)">
<prefetch hint="raw:AddPrefetch">
<sc.include file="/App_Config/Prefetch/Common.config" />
<sc.include file="/App_Config/Prefetch/Master.config" />
</prefetch>
</dataProvider>
- Lastly (and this was my situation) you might lack the following files under the Data folder:

These files are present by default and come with every installation package, however they will not be regenerated automatically; those are the files that the configuration snippet above refers to.
If those are missing, just restore them from a working Sitecore instance.