Why does the amount £80.51 break starling?


#1

I tried to withdraw £80.51 from a goal (the full goal balance) and I couldn’t (the withdraw down arrow greyed out), withdrawing 1p less was fine, then I was able to withdraw that 1p

That was worrying enough, thinking there could be floats and rounding in a banking app, but then I was unable to deposit that £80.51 (which was not the full account balance) into a different goal - with an actual error showing up, again change the balance by 1p and it’s fine

What’s going on?

Withdrawing:

Depositing:


#2

Hey @trinode looks like you may have spotted a bug - if not already done so, can you please contact CS from your app, so we can check your account/device.

We can delete the goal for you, and move the funds out if needed too.


#3

Hey, I was able to move the funds by using different amounts / multiple transfers, just that one specific amount £80.51 the app dislikes


#4

Good the see @trinode has successfully moved his funds. Have you been able to replicate the problem? Fascinated to know if this is a thing about 80.51 :thinking:


#5

I’ve now been able to move that amount, so that implies that the account has to be in a certain state / have certain balances to see the issue.

As a software engineer this makes me sad as I’m sure it will be a major pain to track down the cause since it’s inconsistent.


#6

That’s a blow. I’m sure it’s more of an annoyance for you software engineers. But me? I’m just unashamedly fascinated…:flushed:


#7

everyone knows 8051 is the devils number…


#8

Ooer…:flushed:


#9

Hi @trinode, thanks for reporting this to us, I’ve passed this on to one of our iOS engineers - we’ve had a quick look and suspect we might have a rounding bug. We’ll try to get this sorted as soon as we can.


#10

Nice response @Harry


#11

I get a similar error but with the amount £8.53,


Again I can withdraw 1p more or less


#12

I’m a big supporter of Starling Bank but I have to say, as someone that has worked in Development for around twenty years, a rounding error in a live banking app is a cardinal sin!

Well done to @trinode for spotting and reporting this - hopefully the team will have a fix in place very soon. It does however leave me concerned that there could be other fundamental bugs in the app - it would appear that insufficient testing has been carried out. Very interested to hear Starling’s take on this.


#13

Couldn’t agree with this more.

I’m a software developer too, so I know things don’t always go to plan, but rounding errors in a banking app definitely raises concerns on using Starling!

Although this bug doesn’t seem to lose money, as you simply can’t transfer it and only causes an error, but it does make me think about what unit/integration testing and quality control you have in place to ensure money doesn’t go missing.


#14

We’re investigating the issue and hope to have this resolved as soon as possible. What we have since found that the issue might be caused by a bug on iOS with numbers that are constructed using a localised currency string (and not a rounding issue on the app which we first suggested). We’re continuing to find a fix for this and will update you soon.


#15

Hi Sarah,

Any update on this yet? I’m really keen to understand what caused this bug.

Cheers,
Dan


#16

Hi,

Did you get a resolution on this? I have been unable to move 92.10 in to a goal tonight. I have sent a message to CS in app to allow them to review however I would have expected that given this was identified a while ago that these would have been resolved.

Is this issue only impacting internal movements to goals or is there a chance this bug could impact an amount that I try to transfer to a 3rd party?

Thanks


#17

Hi all,

I’ve tested this - it will be fixed in the build we release later today. Of course let us know if you find any other numbers that cause a problem. I included all of your above instances in my testing and was able to withdraw them from Goals.

Sarah


#18

What is the actual explanation for this issue Sarah? It sounds bizarre that some particular values are causing an issue!


#19

Hi all,

I’m one of the iOS devs on the team, thought I’d chime in as this issue has gained some mystery and sense of voodoo! It’s all explainable though, so hopefully I can shed some light.

First off, I’m really sorry you weren’t able to transfer these amounts into your goal!
We’ve fixed the issue, and it wasn’t caused by the use of imprecise types.

Developers amongst you may rightly spot that use of floating point types can lead to rounding errors, and is fundamentally a flawed way to represent currency transactions.

We represent amounts using a native type called NSDecimalNumber. This type is specialised for dealing with base-10 arithmetic, and in particular, is perfect for storing and calculating currencies and amounts, without error.

In this scenario, the Apple API we were using encountered issues when trying to convert locale-specific strings to NSDecimalNumbers, ie how we take your typed text input, accounted for the region you may be in (eg commas instead of decimals in most of Europe), and turn it into it’s currency representation to be transferred to the goal.

It didn’t seem to matter which locale your device was using though, it caused issues with certain amounts. There are countless numbers which would have failed to send, and certainly nothing magic about these numbers, although in the spirit of the holidays, you could go on an Easter egg search for them. :rabbit:

Trivia: the smallest amount I could spot was 0.07

Apologies once again and hope the update makes it’s way to you soon!


#20

Nice response - thanks.