Hey everyone, so sorry, don’t know how i missed the bug report thread, I posted in another thread as well.
I wanted to flag a front-end validation bug I just caught in my run logs regarding the User Input block.
If you set a File Upload field (specifically configured for images) to Required, the native form UI doesn’t actually stop a user if they leave it blank. Instead of throwing a standard “This field is required” error and graying out the Next button, the form lets them submit.
What’s happening in the backend: When the user clicks Next with a blank upload, the system converts that empty field into an empty JSON array and passes it to the variable. The logs show: Setting {{variable_name}} to JSON [].
Because the system sees [] as a valid data object, it assumes the “Required” condition has been met and pushes the run forward.
The impact: This causes downstream Vision AI/LLM blocks to run with zero images, which wastes API tokens and results in hallucinated or generic text generation.
Current Workaround: For anyone else experiencing this, you have to build a custom Router block immediately after your form to check if the variable Equals = [] and manually bounce the user back to an error screen.
Repro:
Add User Input → File Upload (Images).
Toggle “Required” on.
Preview the app, leave the upload blank, and click Next.
Check your logs—you’ll see the empty [] array passed through.
I’ve included some screenshots, hopefully named in chronological order so they make sense.
They outline how the validation for file uploads does not seem to be working. I have the file upload set at required, but forms still get sent with no files/images uploaded. Validation seems to be working on other form elements though.
Input Form Bug - ‘Required’ Validation for File Uploads Does Not Work
Description:
There is a front-end validation bug occurring within the “User Input” block. When a File Upload field (configured for images) is marked as “Required,” the form UI fails to block submission if the user leaves the field completely blank. Instead of halting the run and displaying a required field warning, the system processes the empty field, converts it to an empty JSON array , and successfully passes it to the backend variables.
Steps to Reproduce:
Create a User Input block.
Add a File Upload input and configure it to accept images.
In the Right Sidebar Configuration, toggle the field to Required.
Publish or preview the app.
Fill out all other fields but leave the File Upload field completely blank.
Click Next (Submit).
Expected Behavior:
The front-end form should refuse to submit, keep the user on the current screen, and display a standard UI validation error (e.g., “This field is required”).
Actual Behavior:
The form successfully submits. When reviewing the Run Logs, the system shows that the variable was passed as an empty array: Setting {{variable_name}} to JSON . Because is technically processed as a data object, it circumvents the “Required” lock.
Impact:
This allows users to bypass mandatory file uploads, resulting in empty data being sent to downstream AI models (LLMs/Vision). This causes the models to generate generic/hallucinated text based on missing images, which wastes API tokens and forces developers to build redundant backend Router blocks to catch the string.
Sorry if I posted this twice, wasn’t sure where I should be posting it.
Input Form Bug - ‘Required’ Validation for File Uploads Does Not Work
Description:
There is a front-end validation bug occurring within the “User Input” block. When a File Upload field (configured for images) is marked as “Required,” the form UI fails to block submission if the user leaves the field completely blank. Instead of halting the run and displaying a required field warning, the system processes the empty field, converts it to an empty JSON array , and successfully passes it to the backend variables.
Steps to Reproduce:
Create a User Input block.
Add a File Upload input and configure it to accept images.
In the Right Sidebar Configuration, toggle the field to Required.
Publish or preview the app.
Fill out all other fields but leave the File Upload field completely blank.
Click Next (Submit).
Expected Behavior:
The front-end form should refuse to submit, keep the user on the current screen, and display a standard UI validation error (e.g., “This field is required”).
Actual Behavior:
The form successfully submits. When reviewing the Run Logs, the system shows that the variable was passed as an empty array: Setting {{variable_name}} to JSON . Because is technically processed as a data object, it circumvents the “Required” lock.
Impact:
This allows users to bypass mandatory file uploads, resulting in empty data being sent to downstream AI models (LLMs/Vision). This causes the models to generate generic/hallucinated text based on missing images, which wastes API tokens and forces developers to build redundant backend Router blocks to catch the string.