Bug 199614

Summary: REGRESSION (iOS 13): IndexedDB quota is Only 500 MB - No Way to Ask User for More
Product: WebKit Reporter: Sanjay Kumar <hypertree>
Component: Service WorkersAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Blocker CC: achristensen, beidson, myh, sihui_liu, tomac, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: iPhone / iPad   
OS: Other   
See Also: https://bugs.webkit.org/show_bug.cgi?id=185405

Description Sanjay Kumar 2019-07-09 03:30:20 PDT
It seems in iOS 13 and iPadOS 13 Beta (I am using latest Beta 3) IndexedDB storage is now capped at 500 MB. 
They were previously uncapped.

Exact Error is:
QuotaExceededError: Unable to store record in object store because no enough pace for domain.

I confirmed this with "browser storage abuser" test here:
https://demo.agektmr.com/storage/

There is no way to ask user to approve more storage.
Users are stuck limited to just 1 or 2% of the storage they paid for on a premium device.

This may have been caused by:
https://bugs.webkit.org/show_bug.cgi?id=196545

This is seriously crippling and detrimental to all PWAs/Web Apps out there.
My App is used in mission critical flying and needs gigabytes of storage to store offline map tiles.
In general PWAs are now replacing Native applications so we need unlimited storage - not 500 MB total.

Please fix this ASAP. Either implement StorageManager API or at least allow Web Apps to use at least 5% of available storage as a sensible starting point.
Comment 1 Thomas Steiner 2019-07-09 17:02:42 PDT
> Either implement StorageManager API 

Also see https://bugs.webkit.org/show_bug.cgi?id=185405.
Comment 2 Radar WebKit Bug Importer 2019-07-10 09:24:59 PDT
<rdar://problem/52895628>
Comment 3 youenn fablet 2019-07-10 09:32:25 PDT
I confirmed the issue on iOS.
https://demo.agektmr.com/storage/ works fine on the Mac, user is prompted for more space.
Comment 4 youenn fablet 2019-07-12 11:26:52 PDT
(In reply to youenn fablet from comment #3)
> I confirmed the issue on iOS.
> https://demo.agektmr.com/storage/ works fine on the Mac, user is prompted
> for more space.

This is a Safari behavior and no change is needed in WebKit, the issue will be tracked internally.

Note though that even though the user is granted quota increase, a given request might still fail due to QuotaError if the request is bigger than the quota increase validated by the user.
This is observable in https://demo.agektmr.com/storage/ when trying to write multiple 500MB blobs.
In general, I believe requests below 50MB should be fine.
Comment 5 Sanjay Kumar 2019-08-03 09:33:25 PDT
I re-architected my App to stay within 500 MB limit (which indeed seems to be the hard limit). This means Safari on iOS users will not see all benefits of my App until a higher limit is allowed via Storage manager API. Something like this:
https://bugs.webkit.org/show_bug.cgi?id=185405

Since this is a policy mater for Safari and not an actual bug in Webkit I am marking this bug as WONTFIX.
Comment 6 youenn fablet 2019-08-03 11:31:09 PDT
Changing to Invalid instead of WontFix.
Comment 7 Sanjay Kumar 2023-05-09 07:28:16 PDT
Fixed via:
https://bugs.webkit.org/show_bug.cgi?id=255095