Help

Empty is not the same as gone

Nearly every report of vanished records turns out to be the app looking in the wrong place: a different email address, no account at all, or a download that stopped half way. Two seconds in the side menu tell them apart.

Before you do anything drastic

Update the app first. Several of the faults on this page were fixed in the 5.2.1 and 5.3.0 updates, and on an older build they will not go away whatever else you try. Your version is the last row of Settings, under User preference.

Then leave the app alone until you have read the next section. Two habits that used to be safe advice can now cost you records:

  • Do not reinstall. Expenses added while offline, everything recorded before you signed in, and monthly limits and templates without MiExpenses Premium exist on the phone and nowhere else. A reinstall takes them.
  • Do not sign out. Milder, but it empties the queue of records that have not reached the server yet.

If you want a copy in hand before touching anything, the side menu has DataSave as CSV, one vehicle at a time. That file reads back into MiExpenses later, so it is worth making before anything else.

Five states that look the same from the home screen

An app with nothing in it looks the same in all five, and the fix differs. Open the side menu and read the line under the product name — it settles four of them.

Empty, and you did sign in

The side menu shows an address, but not the one you have used for years. You are in a different account, and it is genuinely empty. The old records are untouched.

Empty, and you were never asked to sign in

You chose Continue without an account, and the side menu says Working without an account. Records made that way live on this phone only. They move into the account by themselves when you sign in — but only if that account is still empty. If it already has vehicles, they stay put and the app says so; DataMove into the account, in the side menu, then carries them over once you pick a vehicle for them.

Vehicles you have never owned

Same line in the side menu, and cars that are not yours: you chose Look around, and this is the made-up set the app shows to give you a feel for it. DataRemove the demo, in the same menu, clears it without touching anything of yours.

Right address, still empty, app not updated in a year

Older builds gave up on the whole download when the server sent a kind of record they had never been taught to read, so the account arrived empty even though the address was right. Update, then reload.

Some records back, but not all

The download stopped part way, and the app usually says so: Sync interrupted — poor connection. Please reload. The ordinary refresh will not finish it — only a full reload asks the server for everything again.

The address is the whole diagnosis

Records are filed under your email address — not under the phone, and not under which sign-in button you press. Version 5.1 moved to a new sign-in scheme, so every older install was asked to sign in once. That part is expected; what follows it is where accounts get mixed up.

  1. Update before you judge anything

    On a build older than 5.3.0 an account can arrive empty even when the address is right. There is no point diagnosing further until the app is current.

  2. Open the side menu and read one line

    Under the product name is either the address you are signed in as, or a line saying you are working without an account. That single line separates four of the five states above.

  3. Get back to the sign-in screen

    The same row does both jobs, in Settings under User preference. Signed in under the wrong address it reads Logout; working without an account it reads Sign in to an account.

  4. Sign in with the address you have always used

    The address is what matters, not the method. Google, a password and a code sent by email all reach the same account when the address is the same.

  5. Mind the exact spelling

    Capitals and stray spaces make no difference. Dots and plus-tags do: b.o.b@gmail.com and bob+car@gmail.com are different accounts from bob@gmail.com.

  6. Not sure which address it was?

    Look for mail from MiExpenses — a sharing invitation, a password reset — or, if you bought MiExpenses Premium, the Google Play receipt.

  7. Let the first sync finish

    Records arrive in pages and the app shows progress. An account that looks half empty two seconds in is usually still downloading.

The two reloads are not the same thing

The refresh button on the home screen fetches only what has changed since the last successful download. SettingsUser preferenceReload all data asks the server for everything from the beginning, and it is the only one that recovers a sync that stopped half way.

Neither of them deletes anything: records waiting on the phone stay queued, so a reload takes nothing away and is worth trying before you write to anyone. It does need a connection, though — with no network the app answers Not available in offline mode and nothing happens.

Other things that go wrong

Ordered by how often they turn up, not by how hard they are to fix.

It says there is no connection, and the phone is plainly online

Up to 5.2.0 the app did not ask whether you had a network — it asked Android whether it had verified that network by reaching a test address. Internet providers, DNS filters, VPNs and corporate gateways block that test, and right after a Wi-Fi connects the answer does not exist yet. On those phones the app refused to even try. The check was removed in 5.2.1, so updating is the whole fix in most cases.

One cause survives updating. The app reaches the server by one of two routes and switches between them by itself when a route cannot be reached at all. A route that answers but answers badly is the awkward case: in that case the app switches only what it is reading, because repeating a save on the other route could file the same record twice. Reading then looks fine while saving keeps failing.

That case has its own diagnostics, in Settings under Advanced. Active route names the one in use; Check connection says whether it answers; Connection mode lets you switch it by hand between Auto, Helsinki and Moscow so you can try the other one; and after moving between networks or countries, Reset auto-detection makes the app forget a route that used to work.

An expense will not save

The expense form used to decide first and try afterwards: it asked whether there was a network, and wrote to the phone only when the answer was no. With no network at all that worked. The case it lost was the one in between — a network that is there while the server is not — because the record went off to a gateway that was never going to take it. Since 5.3.0 the order is reversed: the form sends to the server first and writes to the phone on any refusal whatsoever, so a new expense always has somewhere to land.

Changing a record you have already saved is a different rule, and it has not changed: editing and deleting need the server, creating does not. The queue goes out when the home screen next opens with a connection, so come back to it once you are online rather than closing the app from the form.

The app closes itself, usually while adding an expense

The expense form saves a draft whenever you leave the screen, and until 5.2.1 that draft never checked whether the fields were filled in. Choosing an expense type and then switching away before reaching the odometer field closed the app. Update; until you can, fill the odometer field before leaving the expense screen.

Reminders disappeared after an update, and reinstalling did not help

First check the account, above — a list that looks empty is far more often the wrong account than a missing record. Then look at the second tab in the reminder list, where postponed and completed reminders sit: ones you marked done, one-off reminders whose date or distance has passed, and postponed ones all leave the active list by design.

There is one mechanism that really does delete. From release 5.1.0 the app honours withdrawn sharing: on the first sync after updating, a vehicle somebody had shared with you and has since stopped sharing is removed from the phone, and its reminders and expenses go with it. Reinstalling cannot bring those back, because the server will not send them again. If that is what happened, write to us: closing it needs the server-side record for your account.

Monthly limits and templates did not come back

Vehicles, expenses, categories, reminders and sharing live on the server and return on any phone. Monthly limits and expense templates are part of MiExpenses Premium, and the server stores them only for an account that has it.

That produces one state which reads exactly like data loss. Where Google Play purchases do not work, the app opens limits and templates anyway — so you can make them, use them and watch a limit count down, while the server goes on refusing to store them. They never leave that phone: a reinstall removes them, a second phone never shows them, and signing in again does not bring them back.

They are written into the CSV export either way, which is the copy to make before changing phones. On an account that has MiExpenses Premium they upload by themselves and arrive on the next device.

Fuel consumption shows a dash

The figure is measured between two full fill-ups of the same fuel: the distance between their odometer readings against everything that went into the tank after the earlier one. Ten partial fill-ups produce no figure at all, and the app prints a dash rather than a misleading zero.

So check that at least two fill-ups have Full tank ticked and an odometer reading. If you rarely fill right up, turn on Fuel consumption in Settings under Interface options, which lets partial fill-ups into the calculation — figures then carry a ~. A vehicle running on two fuels keeps a separate figure for each, and electric charges always count as full. And one correction to advice that has been given for years: the tank volume does nothing for the figure between two full fill-ups. It is needed only for the estimate from partial ones — and there it is needed absolutely, so if you have switched partial fill-ups on and still see nothing, an empty tank-volume field is the reason.

I cannot get registered at all

Use Sign in with a code from email — there is no password to invent. If the code never arrives, check spam and confirm the spelling; when codes are unavailable the app says so and offers Google or a password instead. If you only want to try the app first, Continue without an account skips the form entirely and you can sign in later.

If Google sign-in is refused with a line about the address already being linked to another sign-in method, that address was registered with a password. Same address, different door: use the password or the emailed code.

A different message, Registration is not complete on the main screen, does not mean your account is broken. It means the sign-in did not finish because the server could not be reached — treat it as the connection fault above.

A back-dated expense is refused over the odometer

The app keeps dates and odometer readings consistent with one another: a later date cannot carry a smaller reading than an earlier one. Entering months of history newest-first sets off that check constantly.

The dialog does not merely complain: it names the reading that fits the date you chose and offers to put it in the field. Accepting is usually right — but it fills the field rather than saving the record, so save again afterwards. Entering history oldest first stops the check firing at all.

Reminder notifications never arrive

Reminders are checked on the phone by a background job that runs roughly every six hours, and Android battery optimisation is free to run it later than that. On top of that, reminder notifications are held to 09:00-22:00 local time, at most one every eight hours, and none appear while the app is open on screen.

Two settings are worth checking: notifications must be allowed for MiExpenses in Android settings — the app asks once, and that first-run prompt is easy to dismiss by accident — and on Xiaomi, Huawei, Samsung and Oppo phones the app has to be exempt from battery optimisation, which is the commonest single reason a reminder is hours late. Expect a delay of hours rather than minutes: this is a service-interval reminder, not a message.

If none of it helped, write — but to the right address

The two mailboxes are read by the same person, so a letter to the wrong one is not lost. They are still not interchangeable, because one of them is the address the privacy policy names as the contact for your data.

  • Something is broken — the address is right, the app is current, the sync finished, and it is still empty: support@mve.suxlv2.space. Say which version you are on and what the side menu shows.
  • Something about your own data — a copy, a correction, deletion: contacts@mve.suxlv2.space, writing from the address you sign in with.

What to put in a report so it can be reproduced without a second round of questions is on the support page.

Nothing here matches?

The support page has the two addresses, the four lines that make a bug report usable, and how to get your data out or have it removed.