Dashboard passport scan error leaves passportScanning stuck true #1011

Closed
opened 2026-08-12 07:10:08 +00:00 by spikerj · 1 comment
Owner

Summary

SpikersoftDashboardComponent.onPassportScanRequested clears passportScanning only in the Observable complete handler. On OCR/scanPassport error, RxJS does not emit complete, so passportScanning stays true and the UI can keep showing a spinner after a failed scan.

Same failure class as the already-documented blog-load bug (loadingBlog stuck when getAllBlogPosts errors).

Location

projects/spikersoft/src/app/_components/spikersoft-dashboard/spikersoft-dashboard.component.ts — onPassportScanRequested.

Repro (unit)

Wave6 a7 close/passport suite asserts passportScanning() === true after a throwError from ApplicationService.scanPassport.

Expected

passportScanning returns to false in both success and error paths (e.g. clear in error as well as complete, or use finalize).

Found by

Wave 6 LOOP tick 6 — coverage-wave6-a7 (meaningful coverage).

## Summary `SpikersoftDashboardComponent.onPassportScanRequested` clears `passportScanning` only in the Observable `complete` handler. On OCR/`scanPassport` **error**, RxJS does not emit `complete`, so `passportScanning` stays `true` and the UI can keep showing a spinner after a failed scan. Same failure class as the already-documented blog-load bug (`loadingBlog` stuck when `getAllBlogPosts` errors). ## Location `projects/spikersoft/src/app/_components/spikersoft-dashboard/spikersoft-dashboard.component.ts` — `onPassportScanRequested`. ## Repro (unit) Wave6 a7 close/passport suite asserts `passportScanning() === true` after a `throwError` from `ApplicationService.scanPassport`. ## Expected `passportScanning` returns to `false` in both success and error paths (e.g. clear in `error` as well as `complete`, or use `finalize`). ## Found by Wave 6 LOOP tick 6 — coverage-wave6-a7 (meaningful coverage).
Author
Owner

Already on master (not part of PR #819). Dashboard passport scan already clears passportScanning on the error path, so a failed OCR no longer leaves the spinner stuck. Closing.

Already on `master` (not part of PR #819). Dashboard passport scan already clears passportScanning on the error path, so a failed OCR no longer leaves the spinner stuck. Closing.
Sign in to join this conversation.