In Sitecore Forms, submitting a form with an empty non-required File Upload field might fail with the following unhandled exception:
[NullReferenceException: Object reference not set to an instance of an object.]
Sitecore.ExperienceForms.Mvc.Pipelines.ExecuteSubmit.StoreFiles.StoreUploadedFiles(List`1 files, String itemId) +313
Sitecore.ExperienceForms.Mvc.Pipelines.ExecuteSubmit.StoreFiles.Process(ExecuteSubmitActionsEventArgs args) +568
(Object , Object ) +53
Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +489
Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists) +235
Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain) +21
Sitecore.Mvc.Pipelines.PipelineService.RunPipeline(String pipelineName, TArgs args) +231
Sitecore.Mvc.Pipelines.PipelineService.RunPipeline(String pipelineName, TArgs args, Func`2 resultGetter) +225
Sitecore.ExperienceForms.Mvc.Processing.FormSubmitHandler.ExecuteSubmitActions(FormSubmitContext submitContext) +323
Sitecore.ExperienceForms.Mvc.Processing.FormSubmitHandler.Submit(FormSubmitContext submitContext) +108
Sitecore.ExperienceForms.Mvc.Controllers.BaseFormBuilderController.ProcessFormData(FormDataModel data) +1243
Sitecore.ExperienceForms.Mvc.Controllers.FormBuilderController.Index(FormDataModel data) +129
lambda_method(Closure , ControllerBase , Object[] ) +138
The issue occurs due to missing scripts that should be added by the @Html.RenderFormScripts() helper mentioned in the following document: https://doc.sitecore.com/xp/en/developers/93/sitecore-experience-manager/add-a-form-to-a-webpage.html
For all Sitecore versions, add the @Html.RenderFormScripts() helper to MVC layout as described in the Add the MVC layout section of the following document:
https://doc.sitecore.com/xp/en/developers/93/sitecore-experience-manager/add-a-form-to-a-webpage.html