Skip to content

Onboarding & KYC bugs from Android test (2026-05-28) #611

@TaprootFreak

Description

@TaprootFreak

Context

An Android internal-test session on 2026-05-28 surfaced five distinct bugs in the KYC and account-merge flow. A review on 2026-06-01 confirmed all five and produced a first diagnosis (summarised below).

Bundled in one issue because the bugs interact: the merge flow triggers redundant KYC, which the FoF-on-buy bug then amplifies. Split into separate PRs as appropriate and track sub-status via the checklist.

Bugs

1. FoF questions are asked on buy (should be on first sell only)

  • Fix
  • Expected: For the RealUnit wallet, the 10 Financial-Data questions fire only on the first sell, not on buy.
  • Actual: FINANCIAL_DATA is required for every user, regardless of buy or sell.
  • Diagnosis: The agreed differentiation is not implemented in the current state.
  • Scope: api (KYC step logic), possibly app surface.

2. Duplicate merge mail

  • Fix
  • Expected: One merge-request mail per merge event.
  • Actual: Two identical mails received. The ident-doc conflict triggered twice — once at the end of identification, once again on tapping "Aktualisieren" in the app.
  • Diagnosis: The backend has three independent triggers (mail conflict, IBAN conflict, ident-doc conflict), each sending its own mail. No dedup per merge transaction.
  • Scope: api (notification logic on the account-merge path).

3. KYC steps asked again after merge

  • Fix
  • Expected: Completed KYC steps on the master account survive the merge.
  • Actual: After the merge, the 10 FoF questions were asked a second time.
  • Diagnosis: The merge attaches the old account's KYC steps to the master account; the app sees them as open and re-prompts. Partially resolved by fixing chore: typo in *_repository.dart #1.
  • Scope: api (merge logic must respect completed master-account steps).

4. 21-minute lag until "verification completed" mail

  • Fix
  • Expected: A few seconds.
  • Actual: 21 minutes between merge completion and the "Ihre Verifizierung ist abgeschlossen" mail.
  • Diagnosis: Part of the KYC follow-up runs on a 1-hour cron job; worst-case lag matches the observation.
  • Goal: Move the path from cron-based to event-driven (target: seconds).
  • Scope: api (KYC follow-up dispatch).

5. "Fehler beim Laden" in app after merge

  • Fix
  • Expected: A clear waiting/status indicator while the backend processes the merge.
  • Actual: The app polls status with a 30-second timeout; the backend takes longer, the timeout fires, the user sees an error even though the merge is still progressing.
  • Goal: Longer timeout or retry with explicit status messaging — no premature error.
  • Scope: realunit-app (post-merge status polling).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions