[BUG] Duolingo hangs when interrupted during speech analysis
just found a new bug. The Duolingo app (for Android) hangs when it is interrupted during speech practice.
To reproduce the issue, follow those steps.
- Setup an alarm (or something else) that will interrupt the Duo application. Here I study during a strictly limited time slot, so I always set the alarm to interrupt me when
- Start working on one of the lessons.
- Go until you reach a point where the app asks you to listen and then repeat the sentence aloud.
- Wait until the clock alarm is almost ringing.
- Click the big microphone button, speak your answer and click again. The application will start to analyze your voice. This is the hardest part to reproduce this issue, because there is a bery short time slot in order to make the application be interrupted.
- If you're lucky (or not), the phone alarm will ring exactly during the voice analysis step. It will then switch to the alarm application.
- Dismiss the alarm and return to the Duo app.
The expected behaviour would be to get the feedback ("Correct" or "We could not understood...").
The observed behaviour is different. The big button continue to spindle but it never finishes. If I let it still, it will remain like that (stuck, just spinning) for a looooong time. Then it becomes necessary to leave the current lesson and loose the work done so far, for the session.
I would bet that the network connection is somehow lost when the application loses focus. Most probably there is not a proper exception handler to catch this issue and retry to process the voice data. Perhaps an empty try/catch block or even a try/catch/finally that is swallowing the raised exception.
Please note that this issue may be quite hard to reproduce without a properly crafted input. I only observed it because I almost always use my alarm to diligently (or maybe stubbornly? is there such a word?) study only a tiny amount of time, but each and every single day.
To ease this bug analysis, I would try to use a set of long sentences in a custom testbench. Maybe it works also if someone just places a phone call to the device under test exactly when the applcation started to analyze voice data. However, I didn't tried this way of interruption, so I can't state it can reproduce the issue. It is just a nice guess, but definitely worth a shot.
If possible, please keep me informed of your results.
Thank you, Paulo