QuotaExceededError - storage - exceeded the quota

From Error logs

Discourse 1.2.0.beta4 - https://github.com/discourse/discourse version 3cea85e09a5a86d7a965fb2ffd8b132659b79db0


QuotaExceededError: DOM Exception 22: An attempt was made to add something to storage that exceeded the quota.
Url: http://example.com/assets/vendor-0dbc6e71b0ee5428574e3562afe91ef1.js
Line: 5
Column: 20205
Window Location: http://example.com/t/example/66158?utm_medium=email&utm_source=transactional&utm_campaign=club_email


HTTP_HOST: example.com
REQUEST_URI: /logs/report_js_error
HTTP_USER_AGENT: Mozilla/5.0 (iPad; CPU OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B440 Safari/600.1.4
HTTP_REFERER: http://example.com/t/example/66158?utm_medium=email&utm_source=transactional&utm_campaign=club_email

  message: QuotaExceededError: DOM Exception 22: An attempt was made to add something to storage that exceeded t
  url: http://example.com/assets/vendor-0dbc6e71b0ee5428574e3562afe91ef1.js
  line: 5
  column: 20205
  window_location: http://example.com/t/example/66158?utm_medium=email&utm_source=transactional&

LocalStorage is used for the composer settings; I think this person has their browser set to deny cookie & localstorage requests.


It might be - generally my users aren’t the type to play with any type of setting.

If I had this:

I might know the user and track them down.

Or perhaps if the last 3 IP’s per-user were logged - a single IP is a bit pointless with so many people having multiple devices, 1 3G, 1 Wifi etc.

Or might be able to prove they are not a member.

I don’t find any QuotaExceededError in our logs at all, but they wouldn’t be related to a 500 error from the server.

If you deployed using the standalone config, then the redis server is in the docker container (since everything is in there). Did you use standalone? Which size droplet did you use?

1 Like

Just to confirm I’m still seeing them:

Good idea, see if we can repro this error with Safari in private mode, @neil.

The KeyValueStore object protects against throwing on first access, not all accesses. So we need to add try-catch to all its methods.


The user base for this particular Discourse installation is prominently aged mostly 40 to 65 years old…
… it would be a lot of inexperienced non-technical users slipping into “private mode”.

I can definitely reproduce this by using Safari on Mac in private mode and going to my notifications page (/users/neil/activity). Javascript console shows:

Error while processing route: user.notifications (2)
"QuotaExceededError: DOM Exception 22"

It isn’t being logged, but that’s how it happens.


While fixing a bug I got rid of these QuotaExceededError errors :wink: