getodk / getodk/web-forms

Implement bundle failure and retry mechanism

Open
#519 0 comments 0 reactions 0 assignees View on GitHub
needs tech design
Dominant language
TypeScript
Stars
38
Forks
22
PR merge metrics
No merged PRs in 30d

Description

#### Description
We tried to implement a retry mechanism to handle failures [when loading the map bundle](https://github.com/getodk/web-forms/pull/491/files#diff-9bd67616bff84ff2c4df60c24197d5196d889e124d9cf5a2dd438192fc107881). However, the cache-busting query (e.g.,` /map-block.js?bust=`) was ineffective in host applications using Vite/Vue, such as Central or a minimal Vue project, as the bundle could not be located. Once offline capabilities are integrated, leveraging web workers will simplify managing retries for any bundle or asset.

---

#### Checklist
- **Does it need UI/UX design?**
- [ ] Yes. Describe the UI/UX requirements or attach a Figma link in the "Design" section.
- [x] No
- **Does it need API design?**
- [ ] Yes. Specify the endpoints, methods, or data structures needed.
- [x] No
- **Does it need design around state flow?**
- [ ] Yes. Outline the state flow requirements.
- [x] No
- **Does it need a test plan?**
- [x] Yes. Add the test plan as a comment in this task or attach the document.
- Test plan to verify failure detection, retry logic, and offline form submission.

#### Dependencies
- Requires service worker implementation for offline support.

---

#### Related Issues
- https://github.com/getodk/web-forms/issues/305

Contributor guide

No contributing guide indexed for this repository

Research direction

Review the linked PR #491 and related issue #305 first, then locate the service-worker implementation this work depends on. Use the stated test plan to verify failure detection, retry logic, and offline form submission; done means those scenarios pass without relying on the ineffective cache-busting approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vite
Domain
frontend, web-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.