Microphone permission request leads to Thunkable live app crash

Bug found in: Thunkable live on iOS.

Example project: link

Context to reproduce:

  • Project opened in the app for the first time since the app was downloaded;
  • The app has never requested microphone permissions, since the app was downloaded.

How to reproduce:

  1. Press “Start Recording”;
  2. Give permissions to access microphone;
  3. Record any sound;
  4. Press “Stop Recording”;

Expected behaviour:

  • Recording has stopped, the recorded sound is being played.

Observed behaviour:

  • Recording has stopped (apparently), no sound is being played;
  • Keeping the app open for 2 minutes, the app seems to have crashed (see the screenshot below);
  • Press, reset;
  • The expected behaviour is then observed every time until the Thinkable live app is deleted.

This is a critical bug that is blocking me from releasing my app to AppStore.

So the crash only happens after two minutes?

Are you using any loops or timers that might cause that?

How do you know it has to do with microphone permissions? It sounds like the app only crashes after you’ve recorded a sound.

Have you used debugging to narrow down where/when the crash occurs? I use this method: Debugging in Thunkable X (Video)

There is a link in the post which you can follow to confirm there are no loops of any kind. Out of curiosity, why did you suspect loops to be a condition of this bug?

Let me put stress on this: For the bug to be reproduced, the Thunkable Live app should have never requested microphone permissions since the app was downloaded. After you have granted permissions, if you relaunch the app — it all works perfectly fine.

Not only have I debugged the bug back and forth, I created this project for the sole purpose of demonstrating this crash, which I first encountered in my other private app. I knew exactly what to do to reproduce it.

tatiang

I followed your directions, recording a sound and stopping the recording. I then left the app open in Thunkable Live for over three minutes without a crash.

I tested it on an iPhone 13 Pro running iOS 16.6.

The blocks are very simple so I don’t see a reason (timer or loop) for the crash to happen after two minutes: