Unfortunately, I'm unable to use your plugin at the moment. I get an error when trying to use it in both the project and the demo version. What could be wrong?
Thanks for reporting this. The errors in your screenshots - âCannot read properties of undefined (reading âprepareâ)â and âinstance.data.startRecording is not a functionâ - usually happen when the recorder element hasnât been initialized by the environment. This plugin is a native-mobile one, so it needs to run on a real device (Bubbleâs native wrapper/Bubble Go or any webview wrapper) with mic permissions granted. Running it in a desktop browser or triggering the action before the element is ready can cause exactly those messages.
Before anything else, please simplify the setup:
In AudioRecorderNativeLight â Upload endpoint URL, use a plain text URL (no âformatted as textâ, no data-type conversions):
Quick check - were you able to try the steps in our previous message (test on a physical phone with mic allowed, set the Upload endpoint as plain text, and keep only one visible recorder element)?
Did that remove the errors or improve the behaviour?
If it still fails, please share:
How youâre previewing (Bubble Go / webview vs desktop) and device + OS.
A minimal test page link + full screenshots of the element setup (Appearance / Conditional).
The exact workflow steps calling Start recording and Upload to Bubble.
As a follow-up, I temporarily subscribed to the paid PRO version and it does work with all the same settings. I donât need any of the pro features and I believe this is an issue with the free plugin.
I would prefer the free plugin to be fixed rather than stay with the pro plugin.
Thank you for the detailed explanation â that really helps. Weâve forwarded this issue to our development team for immediate investigation, since the behavior youâre seeing (double .mp4 extensions, unplayable audio files, and the free version producing unusable output while the PRO version works) requires their involvement. Weâll do our best to get this sorted quickly.
In the meantime, it would be very helpful if you could share a bit more information so we can narrow the cause faster:
When did this workflow stop working â was it after a recent Bubble or plugin update?
Do all audio files behave this way, or only specific sizes?
Anything you can share will help our team reproduce the exact scenario and resolve it quicker.
Thanks again for reporting this â weâll keep you updated as soon as we have news from the dev team.
Weâve just released an update for the Audio Recorder Free plugin that addresses the issue with recordings being saved with a double .mp4 extension and failing to play back.
The fix is now live in version 1.8.0.
Please update the plugin from your Plugins tab in the Bubble editor, refresh your app, and test your workflow again.
Let us know if everything works smoothly on your end, or if you notice anything unexpected â weâll be here to help!
Usually this error shows up for one of two reasons:
A value isnât being passed correctly somewhere in the workflow (so the element ends up trying to work with null/undefined), or
Thereâs a library conflict with another plugin that uses similar native/web capabilities.
Could you please check whether either of these might be the case on your app?
Do you have any other plugins/elements that also use the microphone, record audio/video, or handle file uploads (e.g., camera/recorder plugins, uploader elements, media capture, etc.)?
The quickest way to verify a conflict is to test on a clean page:
Create a new blank page
Add only the Audio Recorder element + the minimal workflow (start/stop)
Use the same endpoint value
Test again
If it works on the clean page, then weâre likely dealing with a conflict or a workflow/value issue on the original page. If it still fails, please share your plugin list (or a screenshot of installed plugins) and weâll narrow down which one might be interfering.
On that same page I have a workflow that opens the camera.
Itâs actually pretty important for my use case to be able to use both the microphone and the camera on the same page. Are there any workarounds that you know of?
Thank you for your patience while we reviewed your setup. I checked your workflow, and it appears to be configured correctlyâboth the recording and the âspotâ actions align with whatâs recommended in the documentation and the demo page.
The main difference between the working version and yours is that your implementation doesnât trigger an explicit microphone-permission request. You mentioned that youâve granted microphone access, but on many modern devices/browsers microphone access still requires an explicit user interaction (for example, a button click) to prompt the permission request. Granting permission only in the device settings is often not sufficient.
When I previewed your app in the browser, it didnât prompt for microphone access at all.
Could you please check this first and ensure the permission request is triggered on your test page? Once implemented, let us know whether the issue is resolved on your end.
@ZeroqodeSupport as far as Iâm aware there isnât a workflow to trigger the microphone permission. Is there some other way to trigger the mic permission, other than initiating a recording, that youâre aware of?
If you look on the page I am displaying whether mic permission is granted. When you loaded it, does it say âMicPermission:yesâ or âMicPermission:noâ? For me it says yes.
Apologies for the delayed response. Weâve just received an update from our development team regarding a newly published releaseâversion 1.10.0 of the Audio Recorder Free plugin for Bubble Mobile.
This update includes several improvements, including a fix related to recording via the microphone library, which may have been the cause of the issue you experienced.
Please update the plugin to the latest version. After doing so, the action to request microphone permissions should be available on your end.
As mentioned earlier, modern devices may require explicit permission requests to prevent unauthorized background microphone accessâthis is a built-in security measure to protect users.
Weâve also rechecked your demo page and reviewed the projectâs Permissions tab, confirming that microphone access is enabled. At this point, there are no differences between your setup and ours, so the issue should now be resolved.
Please let me know once youâve had a chance to test it.
Weâre glad to hear the previous update resolved the earlier issues.
Regarding the newly observed behavior, what youâre describing may occur because the file is not yet ready for upload when the plugin stops recording.
To help prevent this, you could try adding a small delay using Bubbleâs âAdd pause before next actionâ workflow option, or apply an âOnly whenâ condition based on the exposed state is Stopped.
If neither of these approaches resolves the workflow issue, please let us know and weâll take another look into the problem.