Unchecked runtime.lastError while running storage.set: QUOTA_BYTES_PER_ITEM quota exceeded

Java4you picture Java4you · Oct 8, 2015 · Viewed 12.5k times · Source

I am getting this exception in my background.html page. I don't know what this exception says. Can anyone explain this exception and also tell me how to resolve this exception.

The exception details are

Unchecked runtime.lastError while running storage.set: QUOTA_BYTES_PER_ITEM quota exceeded

Thank you.

Answer

Vishal Kumar picture Vishal Kumar · May 19, 2018

This error comes when you use chrome.storage.sync.set...to set the data greater than 8,192 bytes for a single item as chrome.storage.sync.set allows 8,192 QUOTA_BYTES_PER_ITEM.

Use chrome.storage.local.set, to save the large data...instead of chrome.storage.sync.set.
As chrome.storage.local.set can contains 5242880 :QUOTA_BYTES.

See https://developer.chrome.com/extensions/storage

Also, you can get the alert if still want to use chrome.storage.sync.set using below code:

chrome.storage.sync.set(function() {  
   var error = chrome.runtime.lastError;  
   if (error) {  
      alert(error);  
   }  
});   

If you are getting same warning with chrome.storage.local too, then

Reason: The data you are trying to store is greater than the allowed storage with local i.e. 5242880 QUOTA_BYTES.
Solution: You can set the permission as unlimitedStorage in manifest.json file.

  "permissions": [   
    .....  
    "unlimitedStorage",  
    .....  
   ],

For more regarding permission
1) https://developer.chrome.com/extensions/storage#property-managed
2) https://developer.chrome.com/extensions/permission_warnings#nowarning