Services Plugins FAQs

AWS File Uploader: "Warm Start" Best Practices?

I’m building file upload into my app with the AWS File Uploader and am generally successful across the board, especially after some helpful guidance here on the forum. The documentation notes that the first call to the plugin will typically be a little slow due to the way Bubble instantiates server-side actions. I do see this in practice; the first photo upload is markedly slower than subsequent uploads. I want to make use of the “warm start” functionality that is outlined in the Tips section of the documentation but cannot get it to work. As far as I can tell, this should go:

  1. On page load, fire the ‘Generate Pre-Signed URL’ workflow action. Provide a static file and a valid bucket name.

  2. This should load the Bubble server-side modules. By the time your user is actually uploading files, the temp modules are installed and ready.

I am looking for some insight on the best practices for where to store this static, “dummy,” file. I haven’t yet succeeded in setting this warm start functionality up, and get ‘Invalid keypath / unexpected token’ in my browser console. I’m trying to pass in a file dynamically that is stored on a record.

Thank you for any suggestions!

Hi @pmundell,

Thanks for your detailed message! To help you best with the “warm start” setup, could you please share:

  • A screenshot or video of your workflow configuration where you call the ‘Generate Pre-Signed URL’ action.
  • How and where you’re storing the static “dummy” file you’re trying to pass dynamically.
  • Any exact error messages or logs from the browser console.

This info will help us troubleshoot the “Invalid keypath/unexpected token” error and provide precise guidance.

Meanwhile, here are some general suggestions for a “warm start”:

  1. Warm Start Setup: On page load, trigger the “Generate Pre-Signed URL” action with a static file (e.g., dummy.txt) and a valid bucket name (e.g., my-bucket).
  2. Fixing the Error:
  • Ensure the static file exists and is accessible.
  • Verify the bucket name matches your AWS S3 settings.
  • Use a simple keypath (e.g., warmstart/dummy.txt) with no invalid characters.
  1. Test and Monitor: Check the browser console for errors and confirm the workflow runs without issues.

In addition - double-check your AWS credentials and permissions in the plugin settings.

Looking forward to your reply!

Best regards,
Support Team
Browse all Zeroqode Plugins for bubble
Banner_Last3

hey Constantin, thank you for your reply - I think I resolved my issue. You noted the importance of a simple path without invalid characters and I think that was my problem, I was passing a file URL from bubble File Manager with a series of uneccessary URL params following the actual path. I shortened to just the ‘…cdn.bubble.io/…/filename.jpg’ and I see speedup on first real upload now. For posterity, our implementation is

  1. a ‘Page is Loaded’ event on the page with a single action element, calling a Backend Workflow, passing text arguments for ‘bucketname’ and ‘filepath;’
  2. the Backend Workflow is also a single action element, ‘Generating a Pre-Signed URL,’ accepting those two text arguments. Filepath points to a static image file in our Bubble File Manager and I’ve truncated it to end before the ‘?’ to cut all the params off.

Thank you for your help! Paul

1 Like

As an additional question, is there any timeout period after which you should consider running the Warm Start again? If the page loads and the Warm Start is fired, and then the user doesn’t upload for several minutes, do the temporarily-installed Bubble modules expire?

Hi @pmundell ,

Thank you for your question!

While the documentation doesn’t specify an exact timeout period, Bubble’s server-side modules typically stay active for 5 to 15 minutes during an active session. If no activity occurs, they may expire, requiring another Warm Start.

To ensure optimal performance:

  • If you expect users might delay uploads for more than a few minutes, you could set up a recurring workflow (e.g., every 5 minutes) to re-trigger the “Generate Pre-Signed URL” action, keeping the modules active.
  • Alternatively, trigger the Warm Start again right before the user initiates an upload, if your app’s design allows for it.

Let me know if you need further assistance!

Best regards,
Support Team
Browse all Zeroqode Plugins for bubble
Banner_Last3

Hi @pmundell,

Just following up – were you able to try the suggestions for maintaining module activity and did they help with your workflow?

Let me know if you need further assistance!

Best regards,
Support Team
Browse all Zeroqode Plugins for bubble
Banner_Last3

Just to tack on to this conversation about pre-warming with an additional question:

I have a reusable element that has a file uploader. One of the properties I included in the reusable element was a yes / no to include prewarming. I did this just to clean up all the calls associated with the file uploader. When the property is set to yes, on page load, in the reusable element, I’m prewarming.

But what I’m noticing is that while it’s not returning any error … but it doesn’t seem to actually prewarm. The first file upload still takes extra time.

Is there anything about it being in a reusable element that would cause issues?

Hi liz,

Thank you for reaching out regarding the pre-warming issue with the AWS File Uploader plugin. We’ve noted that you’ve also contacted us through email, and we appreciate your patience as we address this. To provide the best support, we’d like to first focus on determining whether pre-warming works effectively on its own before tackling any potential complications introduced by the reusable element wrapper.

To proceed, we need to confirm the standalone pre-warming functionality. Could you please share the information requested in our last email message? This includes:

  • Screenshots of your current setup, workflow, and any error messages.
  • A Loom video with debug_mode set to step-by-step execution to review the workflow process in detail.

Once we have this information, we can assess the pre-warming behavior independently and then address any specific issues related to the reusable element. We’ll keep you updated as we work through this.

Looking forward to your response!

Best regards,
Egor Smorodinov,
Support Team
Browse all Zeroqode Plugins for bubble
Banner_Last3

Hi Egor, I didn’t respond because I got it working on the standalone side. To confirm, you want me to share screen grabs of the working preloading on a standalone page?

Hello liz,

Thanks for your update and for sharing your progress! We initially requested the information thinking that the standalone pre-warming wasn’t working, so it’s good to hear there’s been some progress on your side.

To help us tackle the current issue with the pre-warming of the plugin not working as expected inside a reusable element, could you please share a few screenshots:

  • The configuration of the reusable element itself
  • Where this reusable is placed on your page
  • The workflow steps that trigger or interact with this reusable

If you notice any errors in the Bubble debugger or in your browser’s developer console, sharing those details would be really helpful as well.

We’ll be glad to take a closer look as soon as we have this info!

Best regards,
Egor Smorodinov,
Support Team
Browse all Zeroqode Plugins for bubble
Banner_Last3

Hello liz,

We’re circling back on the pre-warming issue with the AWS File Uploader plugin in your reusable element. Thanks for confirming the standalone pre-warming works. To resolve the delay in the reusable element, providing the previously requested info is crucial for us to diagnose the issue accurately.

Please share the requested details at your earliest convenience.

Best regards,
Egor Smorodinov,
Support Team
Browse all Zeroqode Plugins for bubble
Banner_Last3