Skip to content

[Bug]: Selecting USDT when creating a subscription blocks amount entry at 0.00 #1616

Open

Description

@piotr-iohk

What happened?

When creating a subscription, selecting USDT under Accepted payments before entering an amount opens the amount editor at 0.00 (0,00 on iOS). Tapping keypad digits does nothing and Continue remains disabled. The attached recording shows the behavior on both platforms.

Expected behavior

A zero amount should act as a placeholder. The first nonzero digit should start a new amount, and Continue should become enabled once the amount is valid.

Steps to Reproduce

  1. Open Subscriptions and tap Create.
  2. Leave the draft amount at zero.
  3. Select USDT under Accepted payments.
  4. Tap the amount/edit control to open the amount editor.
  5. Tap a nonzero keypad digit.
  6. Observe that the amount stays at 0.00 / 0,00 and Continue remains disabled.

Logs / Screenshots / Recordings

2026-10-20-subscription-usdt-zero-recording.mp4

User-supplied cross-platform recording (iOS left, Android right); full 37-second clip, prepared as H.264 MP4 for inline playback.

Bitkit Version

2.5.0 (190), local devDebug/E2E build of PR #1568 at 19e3a31127bb11420480055ec071221cc6b8fe79.

Device / OS

Pixel 6 Android emulator, Android 13 (emulator-5554).

Reproducibility

Observed on both platforms in the supplied recording. Deterministic for a prefilled zero USD draft in the inspected code; frequency across other versions/devices has not been measured.

Additional context

Observed using staging/regtest E2E Debug builds connected to the local USDT fixture; existing wallet profiles retained. This is an amount-entry state issue, independent of balances, clock synchronization, or payment submission.

Cause identified in source: selecting USDT sets USD pricing. The zero draft's inputValue is "0.00", which is used directly as editable input. The shared keypad logic rejects new digits because the two fractional places are already occupied. Initialize a zero draft as empty editable input while keeping the displayed zero placeholder; preserve nonzero amounts and decimal editing.

Workaround: switch BTC → USD inside the amount editor, then type; alternatively delete the prefilled zero before typing.

Regression coverage: select USDT while the draft amount is zero, open Amount, type a nonzero digit and expect the value to change and Continue to enable. Also cover decimals, returning to details and reopening a nonzero amount.

PaymentRequestAmountContent in CreatePaymentRequestScreen.kt initializes dollars from initialDraft.amount.inputValue; NumberPadInputHandler.handleDecimalInput then ignores added digits.

The affected editor/keypad code is unchanged from this PR’s base; this is an existing bug, not introduced by the installed subscription PR. Evidence is the supplied device recording plus source inspection; no new live device session was run for this report.

Platform parity: same behavior on iOS.

Companion report: synonymdev/bitkit-ios#1044

Activity

  1. added theissue type on Oct 20, 2026
  2. added this to the 3.1.0 milestone on Oct 20, 2026
  3. ovitrif commented on Oct 20, 2026

    @ovitrif
    Collaborator

    Triage: milestone 3.1.0, with its twin synonymdev/bitkit-ios#1044. Entering the amount before selecting USDT avoids it, so it does not block 3.0.1; a candidate if a 3.0.2 ships.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions