| Layer | Issue | How it manifested |
|-------|-------|-------------------|
| Network Layer | Incorrect handling of HTTP Range headers for large files (> 200 MB) | The server returned 206 Partial Content, but the client only saved the first chunk. |
| File‑system Layer | iOS/Android sandbox path changes after OS update | The app tried to write to a now‑restricted directory, causing a silent EACCES error. |
| Concurrency Layer | Race condition when two download threads (primary & secondary audio) wrote to the same temporary file | One thread overwrote the other, corrupting the file. |
| Metadata Layer | The manifest (dualAudio.json) used an outdated SHA‑256 hash, so the checksum verification always failed. | The UI displayed a generic “download failed” instead of “checksum mismatch”. |
| UI Layer | The “Retry” button was disabled after the first failure, leaving users stuck. | Users had to force‑quit the app. |
All of the above combined to produce a persistent “download failed” experience for thousands of users. the reader dual audio download fixed
| Change | Before | After | |--------|--------|-------| | Retry button | Disabled after first failure | Re‑enabled with a spinner and exponential back‑off | | Progress bar | Stuck at 0 % | Shows real‑time bytes transferred and estimated time | | Error messages | Generic “Download failed” | Specific messages: “Network timeout”, “Checksum mismatch”, “Storage permission denied” | | Offline mode | No support for pre‑downloaded dual audio | “Save for offline” toggle appears once the download succeeds | | Layer | Issue | How it manifested
| Quarter | Planned Feature | |---------|-----------------| | Q3 2026 | Dynamic speed‑adjustable dual audio – users can set different playback rates for primary vs. secondary tracks. | | Q4 2026 | AI‑generated commentary track – on‑the‑fly translation or glosses, streamed only when needed. | | 2027 | Cross‑device sync – download once on a phone, instantly available on a tablet or desktop via cloud‑linked storage. | | Change | Before | After | |--------|--------|-------|
These enhancements will build on the stabilized download pipeline introduced by the fix.
Even in the fixed version, some hardware decoders (old Smart TVs) may introduce a 200ms delay. Here’s the manual override: