             dispatch_group_notify(uploadImagesGroup, dispatch_get_main_queue()) { [weak self] in
 
                 guard uploadImageInfos.count == mediaImagesCount else {
-
-                    YepHUD.hideActivityIndicator()
-                    self?.postButton.enabled = true
-
                     let message = uploadErrorMessage ?? NSLocalizedString("Upload failed!", comment: "")
-
-                    YepAlert.alertSorry(message: message, inViewController: self)
+                    self?.uploadState = .Failed(message: message)
 
                     return
                 }

            createFeedWithKind(kind, message: message, attachments: mediaInfo, coordinate: coordinate, skill: self?.pickedSkill, allowComment: true, failureHandler: { [weak self] reason, errorMessage in
                defaultFailureHandler(reason, errorMessage: errorMessage)

                YepAlert.alertSorry(message: errorMessage ?? NSLocalizedString("Create feed failed!", comment: ""), inViewController: self)

                dispatch_async(dispatch_get_main_queue()) {
                    sender.enabled = true
                }

                YepHUD.hideActivityIndicator()

            }, completion: { data in
                println(data)

                YepHUD.hideActivityIndicator()

                dispatch_async(dispatch_get_main_queue()) { [weak self] in

                    if let feed = DiscoveredFeed.fromFeedInfo(data, groupInfo: nil) {
                        self?.afterCreatedFeedAction?(feed: feed)

    
    @objc private func post(sender: UIBarButtonItem) {

        let messageLength = (messageTextView.text as NSString).length

        guard messageLength <= YepConfig.maxFeedTextLength else {
            let message = String(format: NSLocalizedString("Feed info is too long!\nUp to %d letters.", comment: ""), YepConfig.maxFeedTextLength)
            YepAlert.alertSorry(message: message, inViewController: self)

            return
        }
        
        uploadState = .Uploading
        
        let message = messageTextView.text
        let coordinate = YepLocationService.sharedManager.currentLocation?.coordinate
