Inspection App Photo Upload Postmortem
Summary
Inspection App photos were not consistently uploading after inspections were submitted. Inspection records were saving successfully, but some expected photos were missing.
The issue was caused by photo uploads timing out under slow or inconsistent network conditions. The app did not allow enough time for some uploads to complete, and the failure was not always visible in our API logs because the upload request did not always reach our API.
A new app version was released with increased upload timeouts and improved retry handling. After the update, photo upload errors stopped and missing-photo counts dropped significantly.
Root Cause
- Photo uploads were timing out before they could complete.
- Slow or inconsistent network connectivity made some uploads take longer than the app allowed.
- The app did not provide enough visibility when uploads failed before reaching the API.
- The issue was resolved by increasing upload timeouts and improving retry handling in the app.
Impact
- Some inspection records were saved without their expected photos.
- Some photos were delayed or missing until the updated app version was installed.
- API logging did not show all failures because some upload attempts failed before reaching the API.
- Some previously missing photos uploaded later because they were still queued locally on the device.
Symptoms
- Users reported that Inspection App photos were not appearing after inspections were submitted.
- Inspection records were saved successfully, but photos were missing.
- API and IIS logs showed inspection save activity, but not the expected follow-up photo upload calls.
- Firebase showed photo upload errors related to connection and timeout behavior.
- After the updated app version was deployed, errors stopped and missing-photo counts dropped.
Resolution
- Released a new app version with increased photo upload timeouts.
- Improved retry handling for photo uploads.
- Confirmed that new photo upload errors stopped after deployment.
- Confirmed that missing-photo counts dropped significantly.
- Confirmed that some previously queued photos uploaded successfully after the update.
Follow-Up Actions
- Add more detailed application logging using Google Cloud Logs and Firebase.
- Improve Firebase logging details around photo capture, upload attempts, retries, failures, and completed uploads.
- Continue using the audit report created during the incident to identify transactions missing photos.
- Add missing-photo audit logic back into the primary inspection audit fact table.
- Add missing-photo visibility to the main KPI dashboards.
- Continue monitoring photo upload activity to identify similar issues earlier in the future.