Skip to content
betterflo
  • How it works
  • Features
  • Languages
  • Pricing
  • Tester program
  • Get it on Google Play
Get it on Google Play

Troubleshooting

This page covers the failures people actually hit, and explains what the app is doing under the hood so the fix makes sense. betterflo runs on-device by default — speech is transcribed and cleaned up on your phone — so most problems here are local (a permission, a grant, a model file) rather than a network or account issue.

Note

betterflo sorts devices into four tiers, from the least to the most capable phone, based on RAM and processor together — never your Android version. A lower tier runs smaller models, gets fewer languages, and backs off sooner under heat or low battery. See Devices and tiers for exactly what each tier gets and why. When advice below depends on your tier, it says so.

The floating mic doesn’t appear, or won’t insert text

The floating mic needs two permissions — check both, since either one missing produces this symptom:

  • “Display over other apps” not granted: the bubble can’t draw at all. Open the Hub’s floating-mic setup and grant it — see Enable the floating mic.
  • Accessibility service not granted or was revoked: the bubble appears but taps do nothing, or dictation happens but the text never lands. Some OEM skins (MIUI, ColorOS, One UI, and others common on India-market phones) auto-revoke accessibility permissions to save battery — recheck it under Settings → Accessibility, or from the Hub’s floating-mic setup screen, which shows live status for both grants.
  • Secure field: the bubble deliberately hides itself over password, OTP, and other secure fields. That’s expected behaviour, not a bug — type those manually.

If both grants show as on in the Hub but insertion still fails in one specific app, see “Dictation isn’t inserting text into a specific app” below — the same field-level exceptions apply to both the floating mic and the keyboard.

Would rather avoid the accessibility permission entirely? The betterflo keyboard needs none of the above — and it’s a full keyboard in its own right: you type on it, dictation is the mic key beside the space bar, and Fix, Tone, Rewrite and Translate sit in a bar above the keys.

The bubble showed a discard action and I want to know what happened

If a dictation came out wrong, you can throw it away with the bubble’s discard control before it ever lands in the field you were typing into — see Enable the floating mic for exactly how the bubble is laid out and what each of its three controls does. Discarding is final: nothing is inserted, and nothing about that utterance is kept.

The keyboard doesn’t appear after I enabled it

This section is about the betterflo keyboard — the full typing keyboard, with dictation on a key — see Enable the betterflo keyboard. If you’re using the default floating mic instead, see the section above.

Enabling betterflo in Android’s keyboard settings is only step one. Android keeps two separate switches:

  1. Enable the keyboard in Settings → System → Languages & input → On-screen keyboard → Manage keyboards.
  2. Select it as the active input method — this is the separate step people miss.

To finish selecting it:

  • Tap into any text field to bring up your current keyboard.
  • Tap the keyboard-switcher (the small keyboard/globe icon in the navigation bar, or long-press the space bar on many keyboards).
  • Choose betterflo from the list.

If betterflo isn’t in that switcher list at all, step 1 didn’t take — go back into Manage keyboards and confirm the betterflo toggle is on. Some OEM skins (MIUI, ColorOS, One UI, and others common on India-market phones) bury this under Additional settings or System apps, and a few require a reboot before a newly enabled keyboard shows up in the switcher.

I switched to betterflo and now I want my old keyboard back

Your previous keyboard was never removed — enabling betterflo doesn’t uninstall or disable it. Use the same keyboard-switcher you used to turn betterflo on:

  • Tap into a text field, open the keyboard switcher, and pick your previous keyboard.

That’s an instant, reversible switch you can do as often as you like. If you want to remove betterflo as an option entirely, turn its toggle off in Manage keyboards — Android will fall back to whatever other keyboard you have enabled.

Fix, Tone, Rewrite or Translate aren’t on the keyboard

The keyboard’s action bar sits above the keys and works on the text in the field you’re in. If some of those actions aren’t there, there are two ordinary reasons — neither of them is a fault, and neither is about paying for anything:

  • The bundle hasn’t finished downloading. Fix, Tone and Rewrite need a model you download, separate from your language’s speech bundle. It follows the same rules as any other download — Wi-Fi-preferred, resumable, checksum-verified before use — so the fixes in “A language bundle won’t download” below apply. Until it has landed and verified, those three aren’t drawn.
  • Your phone is on the lowest device tier. There, Fix, Tone and Rewrite are permanently unavailable: that phone can’t run them, and no download, update or setting changes it. See Devices and tiers for where your phone sits.

Translate works on every tier, including the lowest — though the first time you use it, it may ask for a one-time download of its own.

betterflo deliberately doesn’t draw a control it can’t honour, so a missing button is the app being straight with you rather than something broken. What the keyboard gives you is decided by your phone, not by a plan — see pricing.

A language doesn’t show up in the picker

Before assuming a download failed, check whether it’s actually a tier thing: the smallest device tier only serves English — none of the other languages are offered there at all, by design, because no speech model for them is small enough yet to work reliably. See Devices and tiers for the full reason. If that’s your phone, the language isn’t missing or slow to arrive — it isn’t offered on your tier, and nothing is broken.

If your phone is on a higher tier and a language still isn’t in the picker, that’s the download problem covered next, not a tier limit.

A language bundle won’t download

A language’s speech model downloads as a model bundle over the network — it isn’t baked into the app install, which keeps the download small. Bundle downloads are Wi-Fi-preferred and resumable:

  • On mobile data: betterflo treats a metered network as a reason to warn before a large download. Connect to Wi-Fi and retry — that’s the intended path.
  • Interrupted download: a partial download isn’t wasted. betterflo persists how far it got and resumes from that byte offset on the next attempt rather than starting over — so re-running the download after a dropped connection picks up where it left off.
  • Storage: a bundle needs free space to land and be verified. If your device is very low on storage, free some space and retry.
  • “Downloaded but not working”: every bundle is checksum-verified before it’s used. If a file arrived corrupted, verification fails and betterflo will not switch you to a broken model — it stays on your last working setup. Re-downloading over a stable Wi-Fi connection replaces the bad file.

If a language you selected still isn’t active, betterflo follows a strict downward-fallback rule: it never silently loads the wrong language and won’t leave you with a dead keyboard. If your chosen bundle can’t be verified, it falls back to the next-smaller verified bundle, and if none is available, to a built-in rules-only cleanup so the keyboard still types. See the thermal/battery section below for what “rules-only” means in practice.

The translator won’t download, or English output isn’t available

English output uses its own 229 MB translation model, separate from your language’s speech model — see Writing modes for what it does. It follows the same download rules as a language bundle (Wi-Fi-preferred, resumable, checksum-verified before use), so the fixes above apply directly. Two things specific to the translator:

  • It only appears on the two higher device tiers. On a lower tier, there’s nothing broken to fix — English output isn’t offered there at all. See Devices and tiers.
  • It’s a second download, on top of your speech model. If storage is tight, betterflo prioritises your speech model — free up space and retry the translator separately if it’s the one stuck.

English output looks confidently wrong

This is a known, real limit, not a bug to report. English output can produce fluent, grammatically normal English that doesn’t actually match what you said — and because it reads smoothly, there’s no obvious tell in the text itself. Read Writing modes for exactly how often this happens and why. If you’re dictating anything you won’t proofread against the original, native script is the safer default; treat English output as a first draft rather than a transcript.

Dictation isn’t inserting text into a specific app

If betterflo works in most apps but not one particular field:

  • Password and some secure fields: many apps mark password, OTP, and payment fields so that no third-party keyboard — including dictation — can insert into them. This is the app’s choice, not a betterflo bug; type those manually.
  • Custom / canvas text areas: apps that draw their own text surface (some chat, notes, and game inputs) don’t always accept standard keyboard insertion. Try a normal text field in the same app to confirm betterflo itself is working.
  • The field type changes behavior on purpose: betterflo adapts cleanup to the field it’s in (a URL or email field is treated differently from a message body), so formatting you expect in a chat box may look different in a URL bar. That’s intended.

If text isn’t inserting anywhere, the cause is usually a missing grant — the floating mic’s two permissions, or the keyboard-selection step (see the sections above) — or the microphone permission (next section), not the target app.

It keeps asking for microphone permission / dictation won’t start

Dictation needs the microphone. Android gates this behind a runtime permission:

  • Grant Microphone to betterflo when prompted. If you dismissed the prompt, enable it under Settings → Apps → betterflo → Permissions → Microphone.
  • If you previously picked “Don’t allow,” Android stops showing the prompt — you have to enable it from that Permissions screen manually.
  • On Android 12 and newer you may also see a microphone-in-use indicator (a green dot) while dictating — that’s the OS confirming the mic is active, and it’s expected during dictation.

Because betterflo transcribes on-device by default, granting the mic does not mean your audio is being sent anywhere.

Dictation quality drops when my phone is hot or low on battery

This is deliberate. On a hot or low-battery phone — most noticeable on the two lower device tiers — betterflo steps down through a back-off ladder to stay responsive and stop making things worse, trading some cleanup quality for lower CPU and heat. The rungs, from best to most conservative:

RungWhat you getWhen betterflo steps here
FullFull model + full cleanupCool device, healthy battery, saver off
Lighter modelA smaller / lower-quality modelThermal status reaches Light
Rules-only cleanupDeterministic cleanup, no AI polishThermal status Moderate, or battery ≤ 20%
Raw transcriptionRaw speech-to-text, cleanup pausedThermal status Severe+, battery ≤ 10%, or Battery Saver on

A few things worth knowing:

  • Battery Saver forces the bottom rung. With Android Battery Saver on, betterflo runs raw transcription with cleanup off, regardless of temperature — turn Battery Saver off to get full cleanup back.
  • It ratchets down, then recovers deliberately. To avoid flickering between modes when your phone hovers right at a threshold, betterflo won’t quietly step back up mid-session. It re-evaluates and can return to a higher rung on your next dictation session once the phone has cooled or charged.
  • To recover now: let the phone cool (take it out of a case / off a charger in the sun), charge past the 10%/20% marks, or turn off Battery Saver — then start a new dictation.

Note

The “raw transcription” rung is the honest floor of this build: it’s raw on-device speech-to-text with cleanup paused. A cloud offload option at this rung is planned — not in this build, so today the bottom rung stays fully on-device.

Related

  • Devices and tiers — what each tier gets, and the T0-only-English decision.
  • Writing modes — English output’s real accuracy, with its source.
  • Privacy controls — what’s stored on-device and for how long.

← All help guides

betterflo

Private, on-device voice dictation for any app — for India. Made in India. On-device by default.

Product

  • How it works
  • Languages
  • Devices
  • Compare
  • Pricing
  • Download
  • Tester program

Company

  • About
  • Blog
  • Roadmap
  • Support
  • Send feedback
  • Brand

Legal

  • Privacy Policy
  • Terms
  • Accessibility Service
  • Open-source Notice
  • Security
  • Trust
© 2026 Betterflo · Made in India 🇮🇳 · On-device by default.