We have a form that spans 3 pages (has steps 1 to 3). Currently, we allow them to skip required data because they may want to do Step 2 first before they feel like filling out Step 1 form. Our forms have a Save Draft button so they can save and come back anytime.
A concrete example:
Step 1 requires them to input 5 necessary fields (others are optional)
Step 2 requires them to upload a file
Step 3 requires them to do a schedule
A user might have a file ready and wants to upload it but hasn't thought of what to put on Step 1 yet. So that user can go to Step 2 immediately and skip Step 1 (even if some fields are mandatory). On the last page though (Step 3), the user cannot proceed if he hasn't filled out all the necessary info from Steps 1 - 3. There would be an error message that tells the user that some information is missing (even if it's from another page).
The dilemma is this:
If we only inform the user on the last page about the errors, the user might take long to assess which page and which part of that page is the error.
However, if we validate by page, meaning they can't proceed to Step 2 unless all required info in Step 1 has been filled out, the user loses the flexibility / convenience of doing other steps that's easier for him to accomplish.
What is the best way to approach this?