It's only a problem in very specific circumstances, i.e., the passenger gets in expecting to pay by card/on account. The app crashes and he gives the driver cash at the end of the job. Then when the app restarts, the account job is still there and the only way to clear it is charge the passenger's card. Therefore they pay twice without realising it.
The correct thing (probably) is let the passenger away without paying cash, waiting 5-10 mins for the app to correct itself, and then charge the passenger's card/account.