> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tread.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Mobile Troubleshooting

> Login codes, GPS permissions, missing jobs, app updates — fix the most common driver and foreman issues.

## When to use this page

Send this link to a driver or foreman before opening a support ticket. Most issues resolve in under two minutes. If a fix below does not work, contact your Admin with the driver's phone number and the time of the issue.

## Common issues

<AccordionGroup>
  <Accordion title="Verification code didn't arrive">
    A code only sends to a phone number that already exists on a Tread account. If the driver was never added, no code will arrive — resending won't help.

    **Check in order:**

    1. **Confirm the driver has an account.** This is the most common cause support sees. The dispatcher or Admin must add the driver first. See [Driver record](/concepts/driver-lifecycle).
    2. **Check the number entry.** Type the 10-digit number only. An extra leading "1" or country code blocks the code.
    3. Wait 60 seconds, then tap **Resend code**. SMS deliverability varies by carrier — some codes arrive in 5 seconds, others take up to a minute.
    4. Check the phone has signal (one bar is enough).
    5. Confirm the phone number on file matches the SIM in the phone. A driver who swapped phones but kept the number is fine; a driver on a new number needs the Admin to update the [Driver record](/concepts/driver-lifecycle).

    For Spanish-speaking drivers reporting *"el código no llega"* — same fix. Switch the app language to Spanish in **Settings → Idioma** so the SMS template matches.
  </Accordion>

  <Accordion title="SMS won't work — sign in another way">
    SMS is one of three ways into the app. If codes keep failing, use email instead.

    * **Password:** the driver's email invitation includes a link to create a password. Sign in with it, or tap **Forgot password** to reset.
    * **Magic link:** tap **Sign in with email**, then **Send magic link**. Open the link from the phone's email app.

    Reinstalling? Get the app at [link.tread.io/app](https://link.tread.io/app).
  </Accordion>

  <Accordion title="Driver can't sign in but loads need to keep moving">
    A dispatcher can run the job from the web app while the sign-in issue gets fixed. The driver does not need to be in the app for the loads to progress.

    **From the Dispatch page:**

    1. Find the driver's job row.
    2. Click the job's status and pick the next step. Accept the job first if the driver never accepted it.
    3. Keep advancing the status as the truck moves, through to completion.

    Moving the job to **En Route** alone is not enough — the driver must sign in to run the job from the app. Advancing each step from the Dispatch page is the only way to progress the loads on the driver's behalf.

    This is a stopgap, not a fix. Resolve the sign-in with the steps above, or send the driver's phone number and the time of the issue to your Admin.
  </Accordion>

  <Accordion title="My boss said I got a dispatch but I don't see it">
    Almost always a stale cache or a vendor-assignment mismatch.

    **Try in order:**

    1. **Pull-to-refresh** the home screen. Drag down from the center of the page.
    2. **Force-quit and reopen** the app.
    3. **Check the app version** under **About**. If older than the current store version, update.
    4. **Confirm the vendor assignment.** Ask the dispatcher which Vendor the dispatch was sent to. If it went to a Vendor the driver is no longer linked to, the dispatch will not appear. See [Dispatching to Drivers and Vendors](/concepts/dispatching-drivers-vendors).
  </Accordion>

  <Accordion title="iPhone — Always-Allow location prompt missing after update">
    iOS sometimes drops the location prompt after an OS update. The app needs **Always** access to log GPS in the background.

    **Fix manually:**

    1. Open **Settings → Privacy & Security → Location Services**.
    2. Confirm Location Services is **On**.
    3. Scroll to **Tread**.
    4. Set to **Always**.
    5. Toggle **Precise Location** to on.
    6. Toggle **Motion & Fitness** to on. It lets the app pause GPS while the truck is parked, which saves battery.

    Reopen the app and check **GPS Status**. **Online** means permissions are right. An **Update permission** warning means a setting above is still off.
  </Accordion>

  <Accordion title="Android — battery optimization eats GPS">
    Android battery optimization will kill background GPS without warning. The driver's truck shows as parked even when moving.

    **Disable optimization for Tread:**

    1. **Settings → Apps → Tread → Battery**.
    2. Set to **Unrestricted** (or **Don't optimize** depending on the OEM).
    3. On Samsung: also check **Settings → Device Care → Battery → Background usage limits** and remove Tread from the **Sleeping apps** list.
    4. On Xiaomi/OnePlus: enable **Autostart** for Tread.

    Reopen the app and check **GPS Status** shows **Online**. Then confirm GPS dots appear on the dispatch map.
  </Accordion>

  <Accordion title="Truck shows offline on the dispatch map even though GPS is on">
    The dispatch map only updates while the Tread app on the driver's phone is sending GPS pings. Phone-level GPS being on is necessary but not enough — the app shares location while the driver is on duty.

    **Have the driver:**

    1. Open the Tread app and tap **Clock in**. A driver who never clocked in doesn't transmit GPS.
    2. Force-quit and reopen the app if it has been backgrounded for hours.
    3. Confirm location permission is **Always** (iPhone) or **Allow all the time** (Android). The two accordions above walk through this.

    **From the dispatch side, confirm:**

    * The driver is assigned to a job today on the [Dispatch page](/concepts/dispatching-drivers-vendors).
    * The truck on the job matches the [Equipment](/concepts/equipment) the driver actually drove out in — a mismatch makes the moving unit show under the wrong truck.

    If the truck still shows offline after these checks, contact Tread support with the driver's phone number, the time, and a screenshot of the dispatch map.
  </Accordion>

  <Accordion title="The app won't install — device isn't supported">
    The app runs on modern iOS and Android phones and tablets. If the store hides the app or it crashes on launch, the device is likely unsupported.

    **Minimum requirements:**

    * **iPhone and iPad:** iOS 16 or newer. The App Store hides the app on older iPhones, so it never appears as an install option.
    * **Android phones and tablets:** Android 7.0 or newer. Android 10 or newer is recommended — battery and GPS performance degrade on older devices.

    **Not supported:**

    * Amazon Fire and Kindle tablets (FireOS)
    * Chromebooks and Chrome OS tablets
    * Android 6.0 or older, and Android devices with x86 processors
    * iPhones on iOS 15 or older
    * Windows Mobile devices

    The fix is a different device. Any mainstream phone from the last few years works.
  </Accordion>

  <Accordion title="My truck isn't in the equipment list">
    At first sign-in the driver picks a default truck. If the unit is missing, it hasn't been added to the account.

    * **Internal Drivers:** ask the dispatcher to add the unit.
    * **Vendors:** add it in the app under **Account → Manage Equipment → + Add**. See [Set up trucks and drivers](/vendor-guide/setup-trucks-and-drivers).
  </Accordion>

  <Accordion title="App update install hangs">
    The store download stalls at 90% or the install icon spins forever.

    **iOS:**

    1. Tap and hold the Tread icon → **Pause Download** → **Resume Download**.
    2. If still stuck: open the App Store, tap your profile, pull-to-refresh.
    3. Reboot the phone.
    4. Last resort: delete the app and reinstall.

    **Android:**

    1. **Settings → Apps → Google Play Store → Storage → Clear cache**.
    2. Reopen Play Store, retry the update.
    3. Reboot the phone if it still fails.
  </Accordion>

  <Accordion title="Driver day stuck 'In review'">
    *In Review* means the shift was submitted but no [Ticket Approver](/concepts/roles-permissions) has signed off yet. The driver can still log in and start a new day — the in-review day is locked from edits but does not block tomorrow's work.

    **What the driver should do:**

    * Nothing. The Approver clears the queue from the web app.

    **What the Approver should do:**

    * Open **Approvals → Driver Days**, review hours and tickets, approve or reject. See [Timesheet Approvals](/concepts/tickets-timesheets).
  </Accordion>

  <Accordion title="Offline mode — what syncs when">
    The Driver app keeps working when the phone loses signal. Some data uploads as soon as signal returns; some have known edge cases.

    **Syncs immediately on reconnect:**

    * GPS pings (queued and uploaded in order)
    * Load tickets and photos
    * Status changes (en route, arrived, departed)
    * Hours start/stop

    **Edge case — offline signatures:** Driver e-signatures captured offline upload when signal returns, but the timestamp on the signature is the moment it was captured, not the upload time. If the gap is more than a shift, the [Approver](/concepts/roles-permissions) sees the original capture time on the ticket.

    **What does not sync:**

    * Live dispatch updates push to the phone over the network. A new dispatch sent while offline will not appear until the phone reconnects.
  </Accordion>
</AccordionGroup>

## Still stuck?

Have the driver send their Admin: phone number, app version (**Settings → About**), and a screenshot. Most cases resolve from those three pieces of info.

Drivers can also reach Tread support directly: in-app chat, call or text [1-888-558-7323](tel:+18885587323), or email [support@tread.io](mailto:support@tread.io).
