EACI Development Journal · Mobile

Why Do iOS Browsers Fail Service Worker Registration?

Registration can fail because of context, storage state, lifecycle timing, or platform restrictions. The app records the reason and continues without PWA features.

Mobile ~7 min issue-tagged
Issue this fixes

On iOS, private browsing, storage pressure, an invalid worker response, or a non-secure context can make registration unavailable or unstable. A browser may expose the API and still reject the specific registration.

Chat should not depend on that success. The registration helper checks support, catches failures, logs `sw_register_fail`, and allows ordinary page operation to continue.

What was actually going wrong

Feature detection stopped at checking whether `serviceWorker` existed on `navigator`.

What I tried

What finally worked

Support, registration, readiness, and control are tracked as separate states with bounded waiting and graceful fallback.

Why it worked

Partial platform support is represented accurately instead of collapsed into a boolean.

What I learned

Web capability presence is not the same as successful capability use.

Where EACI uses this today

Main remains usable when iOS cannot install or activate its service worker.

This journal covers real engineering on EACI Companion / The Veil. Companions include Caelum, Chad, Natalia, Atreus, Luna, Roxy, and Cael. Journal articles stay family-safe in content. See Privacy and Ethics.