Welcome to a series of short stories about how Treblle helped solved real problems for real developers. Hope you like them 🙌🏻
One of our customers had an iOS app where you would enter a phone number and it would make an API request. The API endpoint would then send a confirmation code via SMS. You couldn’t even start using the app without the code. The API devs used Twilio to send the message and they tested it many many times by manually making requests to it. It was all working.
On the app side the UI had a country dropdown with flags followed by the user entered phone number. It looked cool. You would select your country and then enter a phone number. The iOS team used a pod to build the UI and then sent the value to the API endpoint.
Once the app was somewhat ready they sent it to a bunch of external testers. Nobody could get it to work. No SMS was comming in from the API. Of course it got reported to the API team and they again tried manually testing via Postman. Everything was working for them - again. Frustration and friction between the iOS devs and API devs built up. iOS team was saying that they are doing everything by the book, the API team was saying it’s working for them when try try it… They had a stalemate on their hands. Together, they spent days communicating back and forth. A few testers tried to enter different numbers, used different app versions…All they found out is that Twillio rejected the phone number - no idea why.
After a few days they added Treblle and as soon as they typed in the phone number in the app everybody understood what went wrong. The pod that the iOS team used. for showing a list of countries, had been appending the selected flag emoji in front of the number. That was being sent to the API and logically it wasn’t working!
- developers will always tend to test in perfect conditions - that is just how we are wired 🤷🏻♂️
- it’s really hard to debug something that no one can actually see 🧐
- it’s hard to find issues when third party code is causing it 🍝