Hmm, perhaps the dialog that appears when you don't use /SILENT is causing the error flag to be set since you didn't supply the size in kb.
Try placing an iferror every other line, so we can determine where it is being set. (You'll need a custom error for each one)
P.S. don't forget to place one right after the section command, so we know a previous section or function didn't set it.