SpikersoftDashboardComponent.onPassportScanRequested clears passportScanning only in the Observable complete handler. On OCR/scanPassporterror, 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).
## 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).
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
SpikersoftDashboardComponent.onPassportScanRequestedclearspassportScanningonly in the Observablecompletehandler. On OCR/scanPassporterror, RxJS does not emitcomplete, sopassportScanningstaystrueand the UI can keep showing a spinner after a failed scan.Same failure class as the already-documented blog-load bug (
loadingBlogstuck whengetAllBlogPostserrors).Location
projects/spikersoft/src/app/_components/spikersoft-dashboard/spikersoft-dashboard.component.ts—onPassportScanRequested.Repro (unit)
Wave6 a7 close/passport suite asserts
passportScanning() === trueafter athrowErrorfromApplicationService.scanPassport.Expected
passportScanningreturns tofalsein both success and error paths (e.g. clear inerroras well ascomplete, or usefinalize).Found by
Wave 6 LOOP tick 6 — coverage-wave6-a7 (meaningful coverage).
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.