Symptom

On a fresh iOS install, the PIN-entry screen shown during FTUE rendered the input field as an effectively invisible rectangle inside the Card. Users couldn’t see they needed to tap there to enter the PIN to join the cluster — the screen looked like just a title, a description, and a Connect button (which was disabled until 4 digits were typed, completing the dead end).

Root cause

composeApp/.../startup/PinEntryScreen.kt rendered an OutlinedTextField with three properties that combined to make the field invisible against the iOS Material light theme:

  1. No label. Without a label, an empty OutlinedTextField shows literally nothing inside the rectangle — no floating label, no in-field hint.
  2. No placeholder. Same effect; nothing tells the user the field expects input.
  3. Heavily de-saturated container (unfocusedContainerColor = surfaceVariant.copy(alpha = 0.15f)) and no border-color override. The default OutlinedTextField unfocused border uses colorScheme.outlineVariant, which is intentionally subtle. On iOS’ Material light scheme that pale grey vanishes against the white Card surface, leaving nothing visible at all.

The bug was described as iOS-specific in the report, but the same composable serves desktop and Android — every target was missing the affordance; iOS just exposed it most starkly because of the lighter default surface.

Fix

Prevention