Risks, known issues, and incidents
This is the register. One list. When something blows up at an event, add an incident at the bottom. Do not start a new document.
Inconsistencies found in code (19 Aug 2026)
Stale-read risks
- Space list is not Redux; pull-to-refresh is the screen remount/fetch. A space removed on backend can still sit in
user.data.space_nameuntil the user changes space. - Home
isOnlinecan be up to 10 seconds behind. - Device never re-fetches leads from server. Excel is not “backend truth.”
Unclear ownership (ask before assuming intent)
- Why camera was not switched to
processBadgeScan. - Whether production API emits 801, 503, or both.
- Whether delayed offline
visited_dateis accepted or rejected by backend. - Whether Conference users should be allowed unlimited same-day scans.
- Whether 403/404 during sync should stay retryable or become final Excel rows.
Incident log
Copy the template. One row or one block per event. Classification must be one of: Mobile / Backend / Contract / Data / Infrastructure / Device.
Template
Incident ID: INC-YYYY-NNN
Date:
Environment: Production / Staging
Event / space:
App version / build:
Feature: Login | Space | Scan-laser | Scan-camera | Sync | Export | Logout
User action:
Expected (quote scenario matrix row):
Actual:
Path: Home laser / Camera / Sync header / Space switch
Operation: userLogin | getSpaceList | generateLead
HTTP status:
Body code:
message:
sync_status:
Duration:
Device online flags: NetInfo vs scan isOnline
Classification:
Root cause:
Resolution:
Preventive action:
Owner:
Status: Open | Investigating | Resolved
Never paste EPTOKEN, passwords, or Authorization headers. Badge number + last 4 of device_id is enough.
Register
Diagnostics inside the app
Yes — add an internal Diagnostics screen (Settings / hidden tap), not on the operator happy path.
Show only:
- Environment, app version, build, API base URL
- user_id, event_id, space_id, space_name, type
- Network: NetInfo connected / reachable / Home
isOnline - Last API: operation, HTTP status, body code, message, sync_status, ms, timestamp
- Queue: unsynced count for current space (from arrays, not
unsyncCount) - Copy report / export last N metadata lines / clear log
Do not log passwords, tokens, excel password, Authorization.
This is not built yet. Until it is, the incident template above is the process.
What not to do
- Do not create folders 01–14. New facts go into one of the five docs.
- Do not fix RISK-001 in the heat of an event without a decision row.
- Do not tell backend “we never save on 5xx” — Home does save offline on 5xx.