Skip to content

Known Issues

Bugs and limitations known during development that are not fixed yet, or are accepted by design. Each entry says what breaks, who is affected, and how to work around it.

  • Shipped fixes belong in CHANGELOG.md (generated from GitHub Releases). When an issue is fixed, move it to Resolved with the version.
  • Unverified work (device, Figma, store) belongs in docs/IMPLEMENTATION_STATUS.md, not here.
  • Code-level shortcuts are marked with ponytail: comments. Add an entry here only when the shortcut is visible to users.

Privacy: Never paste real notification text, amounts, account numbers or screenshots of real data into an entry. Describe the shape (e.g. "GCash cash-in with a reference number") or use [TEST] samples.

Format

IDs are KI-NNN, assigned in order and never reused.

Field Values
Status Open · Investigating · Workaround · Accepted (by design, will not fix) · Fixed in vX.Y.Z
Severity Critical (data loss, privacy breach, crash on launch) · High (core flow broken, no workaround) · Medium (broken with workaround) · Low (cosmetic, edge case)
Area capture · parser · ledger · sync · ui · security · build · platform
### KI-NNN: One-line summary of the user-visible problem

- **Status:** Open
- **Severity:** Medium
- **Area:** parser
- **Affects:** v0.3.0+, Android 13+ (versions, devices, OS levels)
- **Found:** YYYY-MM-DD
- **Tracking:** #123 (issue or PR link, or "none")

**Symptoms:** What the user sees, and how to reproduce it.

**Cause:** Root cause, if known. Link the code (`path/File.kt:42`).

**Workaround:** What users or developers can do meanwhile, or "None".

Open

KI-005: Transactions docked search shows the collapsed bar edge on medium+ widths

  • Status: Open
  • Severity: Low
  • Area: ui
  • Affects: Windows at least WIDTH_DP_MEDIUM_LOWER_BOUND wide (tablets, foldables, landscape)
  • Found: 2026-10-04
  • Tracking: #30 (Allowed apps fix only)

Symptoms: Open search on Transactions in a medium or wider window. The edge of the collapsed search bar can show behind the expanded popup.

Cause: ExpandedDockedSearchBar does not size itself to the collapsed bar. Allowed apps was fixed in cbe0f30 (#30) by measuring the bar with onSizeChanged and passing that width to the popup. The Transactions call site (shared/src/commonMain/kotlin/ph/notifly/ui/Screens.kt, in TransactionsScreen) still passes no width.

Workaround: None.

Limitations

KI-001: iOS cannot capture notifications

  • Status: Accepted
  • Severity: High
  • Area: platform
  • Affects: iOS (all versions)
  • Found: 2026-09-20
  • Tracking: none

Symptoms: iOS targets compile, but IosTransactionSource always reports capture as unavailable.

Cause: iOS has no API for reading other apps' notifications. A Notification Service Extension only sees this app's own pushes.

Workaround: None. The iOS capture story (bank aggregator, file import, or manual only) is undecided.

KI-002: Biometric unlock needs Android 11+

  • Status: Accepted
  • Severity: Low
  • Area: security
  • Affects: Android 8.0–10 (API 26–29)
  • Found: 2026-09-26
  • Tracking: none

Symptoms: On API 26–29 the app lock offers PIN only; no biometric prompt.

Cause: Framework BiometricPrompt needs API 30 for BIOMETRIC_STRONG (app/src/main/kotlin/ph/notifly/android/MainActivity.kt).

Workaround: Use the PIN. Switch to androidx.biometric if older devices matter.

KI-003: Bill reminders do not fire at a fixed time of day

  • Status: Accepted
  • Severity: Low
  • Area: platform
  • Affects: All Android versions
  • Found: 2026-10-04
  • Tracking: none

Symptoms: Bill reminders arrive at varying times of day.

Cause: BillReminderService runs as a 12-hour periodic JobScheduler job, which cannot target a clock time (app/src/main/kotlin/ph/notifly/android/NotiflyApplication.kt).

Workaround: None. Switch to inexact AlarmManager if users want a fixed time.

KI-004: Crash reporting misses very early startup crashes

  • Status: Accepted
  • Severity: Low
  • Area: platform
  • Affects: Builds with crash reporting turned on
  • Found: 2026-09-22
  • Tracking: none

Symptoms: A crash before the crash-reporting preference loads is not sent to Sentry. A report queued before the user turns reporting off may still be sent after they turn it back on.

Cause: Sentry only initializes after the opt-in preference is read from DataStore. See docs/PRIVACY.md.

Workaround: Reproduce early startup crashes with adb logcat.

Resolved

None yet.