add upload error and progress bar