diff --git a/buffet/manager.cc b/buffet/manager.cc
index f5874f4..d5caf0c 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -89,7 +89,7 @@
 
   device_->Start(options, config_.get(), task_runner_.get(), http_client_.get(),
                  network_client_.get(), mdns_client_.get(),
-                 web_serv_client_.get());
+                 web_serv_client_.get(), nullptr);
 
   command_dispatcher_.reset(new DBusCommandDispacher{
       dbus_object_.GetObjectManager(), device_->GetCommands()});
diff --git a/buffet/socket_stream.cc b/buffet/socket_stream.cc
index 7941a92..9ce56bf 100644
--- a/buffet/socket_stream.cc
+++ b/buffet/socket_stream.cc
@@ -12,6 +12,7 @@
 
 #include <base/bind.h>
 #include <base/files/file_util.h>
+#include <base/message_loop/message_loop.h>
 #include <chromeos/streams/file_stream.h>
 #include <chromeos/streams/tls_stream.h>
 
@@ -68,35 +69,35 @@
 
 }  // namespace
 
-bool SocketStream::ReadAsync(
+void SocketStream::ReadAsync(
     void* buffer,
     size_t size_to_read,
     const base::Callback<void(size_t)>& success_callback,
-    const base::Callback<void(const weave::Error*)>& error_callback,
-    weave::ErrorPtr* error) {
+    const base::Callback<void(const weave::Error*)>& error_callback) {
   chromeos::ErrorPtr chromeos_error;
   if (!ptr_->ReadAsync(buffer, size_to_read, success_callback,
                        base::Bind(&OnError, error_callback), &chromeos_error)) {
-    ConvertError(*chromeos_error, error);
-    return false;
+    weave::ErrorPtr error;
+    ConvertError(*chromeos_error, &error);
+    base::MessageLoop::current()->PostTask(
+        FROM_HERE, base::Bind(error_callback, base::Owned(error.release())));
   }
-  return true;
 }
 
-bool SocketStream::WriteAllAsync(
+void SocketStream::WriteAllAsync(
     const void* buffer,
     size_t size_to_write,
     const base::Closure& success_callback,
-    const base::Callback<void(const weave::Error*)>& error_callback,
-    weave::ErrorPtr* error) {
+    const base::Callback<void(const weave::Error*)>& error_callback) {
   chromeos::ErrorPtr chromeos_error;
   if (!ptr_->WriteAllAsync(buffer, size_to_write, success_callback,
                            base::Bind(&OnError, error_callback),
                            &chromeos_error)) {
-    ConvertError(*chromeos_error, error);
-    return false;
+    weave::ErrorPtr error;
+    ConvertError(*chromeos_error, &error);
+    base::MessageLoop::current()->PostTask(
+        FROM_HERE, base::Bind(error_callback, base::Owned(error.release())));
   }
-  return true;
 }
 
 void SocketStream::CancelPendingAsyncOperations() {
diff --git a/buffet/socket_stream.h b/buffet/socket_stream.h
index 9574a1a..757190c 100644
--- a/buffet/socket_stream.h
+++ b/buffet/socket_stream.h
@@ -20,19 +20,17 @@
 
   ~SocketStream() override = default;
 
-  bool ReadAsync(
+  void ReadAsync(
       void* buffer,
       size_t size_to_read,
       const base::Callback<void(size_t)>& success_callback,
-      const base::Callback<void(const weave::Error*)>& error_callback,
-      weave::ErrorPtr* error) override;
+      const base::Callback<void(const weave::Error*)>& error_callback) override;
 
-  bool WriteAllAsync(
+  void WriteAllAsync(
       const void* buffer,
       size_t size_to_write,
       const base::Closure& success_callback,
-      const base::Callback<void(const weave::Error*)>& error_callback,
-      weave::ErrorPtr* error) override;
+      const base::Callback<void(const weave::Error*)>& error_callback) override;
 
   void CancelPendingAsyncOperations() override;
 
