                     if !(response.hasPrefix("1") || response.hasPrefix("2")) {
                         throw FileProviderFTPError(message: response)
                     }
-                    
-                    completionHandler(nil)
                 } catch {
                     self.dispatch_queue.async {
                         completionHandler(error)

            // Send retreive command
            let success_lock = NSLock()
            var success = false
            let len = 19 /* TYPE response */ + 65 + String(position).count /* REST Response */ + 44 + filePath.count /* STOR open response */ + 10 /* RETR Transfer complete message. */
            self.execute(command: "TYPE I"  + "\r\n" + "REST \(position)"  + "\r\n" + "STOR \(filePath)", on: task, minLength: len, afterSend: { error in
                // starting passive task
                let timeout = self.session.configuration.timeoutIntervalForRequest
                onTask?(dataTask)

                    if !(response.hasPrefix("1") || response.hasPrefix("2")) {
                        throw FileProviderFTPError(message: response)
                    }
                } catch {
                    completionHandler(error)
                }
            }
        }
