DocHub
Resolution of all 8 bugs reported by Nicky during staging QA on ricoya.ipnoelp.com

QA Checklist — March 2026

Nicky (QA) reported 8 issues during staging testing on ricoya.ipnoelp.com. All were resolved across March 1-2, 2026.

Issue Summary

# Issue Root Cause Fix Date
1A Unable to load addresses in profile Missing 10 columns in addresses table Mar 1
1B Pages not loading data on navigation SWR aggressive revalidation + stale cache Mar 1
3A Phone number input — symbols not stripped No input sanitization on phone field Mar 1
3B Phone number not showing in cart Cart didn’t read phone from user profile Mar 1
4A Notifications not working on Safari Push subscription not saving to Supabase Mar 1-2
4B Rider notification + delivery console refresh Notification triggers missing for customer, console not auto-refreshing Mar 2
5 Can’t assign orders to drivers from Admin Underlying driver endpoint bugs (firestore_id, restaurant load) Mar 2
6 Unable to load images Firebase Storage URLs broken post-migration Mar 1

Detail

1A — Addresses Not Loading

The addresses table was missing 10 columns that the frontend expected (address_line1, address_line2, city, state, country, postal_code, formatted_address, google_place_id, is_default, name). Added via ALTER TABLE migration.

1B — Pages Not Loading on Navigation

SWR was configured with aggressive revalidation (revalidateOnFocus: true, short dedupe interval). Disabled revalidateOnFocus, increased dedupingInterval to 30s, enabled keepPreviousData.

3A — Phone Number Symbols

Added PHONE_REGEX = /^\+?[1-9]\d{7,14}$/ validation and strip non-digit characters (except leading +) before saving.

3B — Phone Not in Cart

Cart checkout page didn’t pre-populate phone from user profile. Added profile phone lookup and auto-fill.

4A — Safari Push Notifications

Push subscription wasn’t saving to Supabase because subscribeToWebPush() wasn’t being called after the initial enable (localStorage flag was already set). Fix: disable and re-enable triggers the full subscribe flow. Confirmed working on Safari, Chrome, and Firefox.

4B — Customer Notifications + Console Refresh

Added server-side push notifications for all order status transitions (accepted, ready, out_for_delivery, canceled). Delivery console now refreshes order list on notification receipt.

5 — Admin Driver Assignment

The admin order assignment UI was correct, but the underlying driver endpoints had bugs (firestore_id undefined, restaurant 500, pickup 400). All fixed — see Driver Delivery Flow Fixes doc.

6 — Images Not Loading

All image URLs pointed to Firebase Storage which was no longer accessible. Migrated 348 files to Cloudflare R2, optimized from 409MB to 247MB, updated 254 database records with new R2 URLs.

Testing

All 8 issues were verified fixed on three accounts:

Full end-to-end flow tested: order placement → manager accept → driver claim → pickup → proof of delivery → delivered.