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

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


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


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.