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

16,875

Solution 1

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

Solution 2

As outlined by wOxxOm in his comment above, the answer is covered in the chrome.storage documentation.

Moreover, it's always a good practice to implement error handling and check for runtime.lastError. If everything is all right, it will be undefined. If there is a problem, it will be non-empty, and chrome.runtime.lastError.message will explain what's wrong.

Chrome added checks that chrome.runtime.lastError is actually checked (evaluated). If not, it considers this to be an unhandled exception, and throws this error.

Share:
16,875
Java4you
Author by

Java4you

Learn Java programming with complete source code examples and also provide android, javascript, jquery and ajax tutorials and examples.

Updated on July 21, 2022

Comments

  • Java4you
    Java4you almost 2 years

    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.

  • Vishal Kumar
    Vishal Kumar over 4 years
  • titusfx
    titusfx almost 4 years
    unlimitedStorage doesn't fix the problem,
  • Vishal Kumar
    Vishal Kumar almost 4 years
    @titusfx, can you send me screenshots of code permission, file, where you are using this.
  • Shiv Singh
    Shiv Singh about 2 years
    user chrome.storage.local.set in place of chrome.storage.sync.set
  • Vishal Kumar
    Vishal Kumar about 2 years
    @ShivSingh, Hey, I think you didn't read complete solution. Kindly read it...it is the same as you mentioned.