MobiLauncher

Troubleshooting

Things that go wrong, what they mean, how to fix them. Roughly ordered by how often we see them.

Device shows a blank screen

The launcher loaded but failed to render.

First check: is the device online? Hosted URL path needs network.

Second: does the launcher URL work in a browser on your laptop? If not, our service is down — email us, or check status.mobilauncher.com (when we have it).

Third: look at the device's WebView console. Most kiosk-capable MDMs (SOTI MobiControl, Intune, Workspace ONE, etc.) let you enable remote debugging in the kiosk-mode profile; once it's on, open chrome://inspect on your laptop while the device is USB-connected. The launcher logs to console.error when boot fails — look for "config fetch failed" or "license could not be verified."

"Customize my launcher" button does nothing

Browser localStorage is blocked. We store your edit token in localStorage so you can come back without logging in. Private browsing / incognito mode in some browsers blocks it.

Fix: use a regular browser tab, not private mode. Or sign up again with the same email — we'll return your existing tenant + a fresh token.

Edit token rejected

You re-signed-up with the same email and got a fresh token, but your old browser is still trying the old token. Two ways:

  • Sign up again from the browser that's failing → it stores the new token
  • Or: clear mobilauncher.portal.tenant.<your-tenant> from localStorage manually (DevTools → Application → Local Storage)

Tile shows but tapping does nothing

Different causes by tile type:

App tile

  • Package isn't installed on the device — install it via your MDM
  • Package is installed but the kiosk profile is blocking the launch — check your MDM's allow-list / kiosk app list
  • You're running in a regular browser (no MDM agent bridge, no standalone APK) — the demo toast says "via the device MDM agent (demo)" to make this obvious. Expected; nothing to fix
  • The package name has a typo — com.foo.bar vs com.foo.bar.app, vendor docs aren't always clear. adb shell pm list packages to find the real one

Web tile

  • URL is malformed (missing https://)
  • Lockdown is blocking external URLs — relax the WebView whitelist in the Lockdown profile
  • The site you're linking to is blocking iframe / WebView loading (X-Frame-Options, CSP). Try openExternal: true on the tile to hand off to the default browser instead

Devices show last week's config

Hosted URL path:

  • WebView is caching the config aggressively despite our cache-control: no-store header. Some older Android WebView builds ignore it
  • Fix: force-reload the launcher. Most Lockdown profiles have a hot key combo for this; check your MobiControl profile config
  • Or restart the launcher activity from MobiControl Console

Offline bundle path:

  • File Sync hasn't pushed the new bundle yet. Force-sync from Console, or wait for the next sync window
  • The Console may show "out of sync" — that's the signal

You're on an old renderer build. We pushed a fix in May 2026 that makes only the tile grid scroll (header, hero, footer pinned).

Force-reload the launcher to pull the latest hosted version. If you're on an offline bundle, re-download from the Portal and re-push via File Sync.

Status bar / nav bar visible despite Lockdown profile saying hide

MobiControl version skew. Some older Lockdown WebView builds don't honor the immersive-mode hints we emit in CSS.

Fix on the MobiControl side: in the Lockdown Profile, explicitly set "Immersive mode" or "Sticky immersive" on the WebView. The exact field name moves around between MobiControl versions.

Broadcasts don't appear on devices

  • Free tier: the bell icon and the broadcast feature aren't active on Free. Upgrade to Pro.
  • Pro+: devices poll every 60 seconds. Wait a minute after posting
  • Network blocked: the device needs to reach api.mobilauncher.com. Check your VPN / firewall rules
  • Expired: the broadcast expiresAt is in the past. Post a new one with a future expiry
  • Scheduled: the broadcast startsAt is in the future. It will appear when that time arrives

"Stripe Checkout opens but fails / 'No such price'"

Our environment is misconfigured (price IDs not set or wrong). This shouldn't happen — email us with a screenshot, we'll fix and let you know when to retry. Stripe didn't charge you.

"Stripe Checkout succeeded but the Portal still shows me as Free"

The webhook from Stripe takes a moment to land. Wait ~30 seconds and reload the Portal. If it still shows Free after a minute, the webhook probably failed — email us with your Stripe receipt number and we'll trace it.

You won't get double-charged; Stripe's webhook is idempotent on our side.

"Manage subscription" 400s

Means our server can't find a Stripe customer linked to your tenant. Usually because you upgraded from a Free signup that we didn't link cleanly.

Email us with your tenant ID — we'll attach the Stripe customer manually and the button will work.

"I changed pricing in Stripe but the Portal shows the old price"

The dollar amounts displayed in the Portal upgrade panel are hardcoded in our UI — they're not fetched from Stripe at runtime. When we change the Stripe price, we also push a UI update.

Email us if you see a mismatch; we'll catch it in our release cadence too.

My device runs Android 6 / KitKat / something old

Min supported Android is 7.0 (API 24) on the standalone app, and whatever the latest MobiControl agent supports for Lockdown WebView (typically 5.0+).

If you're on something older, the launcher might render but with visual glitches (CSS Grid wasn't fully stable until 7.0). It's not worth us patching for, sorry — the install base is too small.

Something else

Email [email protected] with:

  • Tenant ID (the slug from your launcher URL)
  • Device model + Android version
  • MobiControl version (if applicable)
  • What you tried, what you expected, what you got
  • A screenshot if there's a visual issue
  • Browser console output if there's a JS error

I'll usually respond same-day, slower on weekends.