Wizard Retry Fix - Validation Checklist
Deployment Date: 2026-02-06Commit SHA:
7472c75Frontend URL:
https://payroll-pipeline-cbs.vercel.app/ingestion
✅ Manual Validation Steps
Prerequisites
- Browser DevTools open (F12)
- Network tab visible
- Console tab visible
- Logged in as admin user
Test 1: Save Business Configuration
Steps:- Navigate to:
https://payroll-pipeline-cbs.vercel.app/ingestion - Complete Map Columns step
- Navigate to Preflight step
- Click “Configure” on a business that shows “not ready”
- Set PEPM rate (e.g., 12.00)
- Click “Save”
- ✅ PUT request to
/api/v1/admin/onboarding/businesses/{id}/savereturns 200 - ✅ Drawer stays open during preflight refresh
- ✅ Console shows retry attempts (if config not immediately queryable):
- ✅ Drawer closes after preflight refresh completes
- ✅ Success toast: “Business configured successfully”
- ✅ PUT request includes
x-org-idheader - ✅ PUT request includes
period_labelin body - ✅ GET request to
/api/v1/intake/ingestion-wizard/readinessafter save - ✅ GET request includes
period_labelquery param - ✅ Multiple GET requests if retry logic triggers (up to 3 attempts)
Test 2: Wizard Unblocks After Save
Steps:- After Test 1 completes
- Observe Preflight UI
- Check if businesses show as “ready”
- Verify Processing button becomes enabled
- ✅ Businesses that were saved now show as “ready”
- ✅ Readiness summary updates (X businesses ready)
- ✅ Processing step becomes available (if all businesses ready)
- ✅ No “X businesses not ready” blocking message
- ✅ Business status changes from “not ready” to “ready”
- ✅ Readiness map updates correctly
- ✅ Auto-process gate passes (if all businesses ready)
Test 3: Persistence After Page Refresh
Steps:- After Test 1 completes
- Hard refresh page (Ctrl+F5 / Cmd+Shift+R)
- Navigate back to Preflight step
- Click “Configure” on the same business that was saved
- ✅ Business still shows as “ready” after refresh
- ✅ Opening drawer shows persisted PEPM configuration
- ✅ PEPM rate matches what was saved (e.g., 12.00)
- ✅ No need to reconfigure
- ✅ GET request to
/api/v1/admin/onboarding/businesseswhen opening drawer - ✅ GET request includes
period_labelquery param - ✅ Response includes saved PEPM configuration
Test 4: Retry Logic Behavior (If Needed)
Steps:- Save a business configuration
- Monitor console logs
- Check Network tab for readiness requests
- ✅ If config is immediately queryable: No retries, single readiness check
- ✅ If config not immediately queryable: Up to 3 retry attempts (500ms delay)
- ✅ Console logs show retry attempts (dev mode only)
- ✅ Wizard proceeds even if retries don’t succeed (save succeeded)
- ✅
[handleDrawerSuccess] Readiness check succeeded after X retries(when successful) - ✅
[handleDrawerSuccess] Readiness check retry X/3(during retries) - ✅
[handleDrawerSuccess] Readiness check completed after 3 retries - proceeding(if all retries fail)
Test 5: Multiple Saves in Sequence
Steps:- Save first business configuration
- Wait for drawer to close
- Save second business configuration
- Verify both show as ready
- ✅ First save completes successfully
- ✅ Second save completes successfully
- ✅ Both businesses show as ready
- ✅ No race conditions or stale state
🐛 Known Issues / Edge Cases
If Retry Logic Doesn’t Work:
- Check backend logs for readiness endpoint
- Verify
period_labelmatches between save and readiness query - Check BigQuery write → query lag (may need longer retry delay)
If Wizard Still Blocks:
- Verify readiness endpoint returns correct
is_readystatus - Check if
didLoadReadinessKeyRefis preventing re-fetch - Verify
readinessMapstate is updated correctly
If Drawer Shows Stale Data:
- Verify
handleConfigureBusinessfetches fresh config - Check if
loadPreflight()completes before drawer closes - Verify
preflightDataarrays are updated
✅ Success Criteria
All tests pass when:- ✅ Save succeeds (PUT 200)
- ✅ Readiness check retries if needed (up to 3 attempts)
- ✅ Wizard unblocks after save (businesses show as ready)
- ✅ Persistence works after page refresh
- ✅ No console errors
- ✅ No network errors
📝 Validation Results
Test Date: _______________Tester: _______________
Environment: Production (
https://payroll-pipeline-cbs.vercel.app)
| Test | Status | Notes |
|---|---|---|
| Test 1: Save Business Configuration | ⏳ Pending | |
| Test 2: Wizard Unblocks After Save | ⏳ Pending | |
| Test 3: Persistence After Page Refresh | ⏳ Pending | |
| Test 4: Retry Logic Behavior | ⏳ Pending | |
| Test 5: Multiple Saves in Sequence | ⏳ Pending |
Next Steps: Run manual validation tests and update this document with results.