QuotaExceededError - storage - exceeded the quota

javascript

(Dean Taylor) #1

From Error logs

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

###Info

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

###Env

HTTP_HOST: example.com
REQUEST_URI: /logs/report_js_error
REQUEST_METHOD: POST
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_ACCEPT: */*
HTTP_REFERER: http://example.com/t/example/66158?utm_medium=email&utm_source=transactional&utm_campaign=club_email
HTTP_X_FORWARDED_FOR: 86.174.1.2
HTTP_X_REAL_IP: 86.174.1.2

params:
  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&

(Kane York) #2

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


(Dean Taylor) #3

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.


(Neil Lalonde) #11

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?


(Dean Taylor) #12

Just to confirm I’m still seeing them:


(Jeff Atwood) #20

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


(Kane York) #21

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


(Dean Taylor) #22

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”.


(Neil Lalonde) #23

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.


(Régis Hanol) #24

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

https://github.com/discourse/discourse/commit/cafff9bf013d58315f65934e208ea5927a9af214