                         )
                     postNotification(JSONAbleChangedNotification, value: (love, .delete))
                 }
-                cell?.toggleLoveState(loved: false)
-                cell?.toggleLoveControl(enabled: true)
             }
             .catch { error in
-                cell?.toggleLoveControl(enabled: true)
                 let message = (error as NSError).elloErrorMessage ?? error.localizedDescription
                 print("failed to unlove post \(post.id), error: \(message)")
+            }
+            .always { _ in
+                cell?.toggleLoveControl(enabled: true)
             }
     }
 

            return
        }

        cell?.toggleLoveControl(enabled: false)

        if post.isLoved { unlovePost(post, cell: cell) }

        LovesService().lovePost(postId: post.id)
            .thenFinally { love in
                postNotification(JSONAbleChangedNotification, value: (love, .create))
            }
            .catch { error in
                let message = (error as NSError).elloErrorMessage ?? error.localizedDescription
                print("failed to love post \(post.id), error: \(message)")
            }
            .always { _ in
                cell?.toggleLoveControl(enabled: true)
            }
    }

