diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index 2197989..001d610 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -39,6 +39,7 @@
         'dbus_utils.cc',
         'device_registration_info.cc',
         'error.cc',
+        'error_codes.cc',
         'exported_object_manager.cc',
         'exported_property_set.cc',
         'http_request.cc',
diff --git a/buffet/error_codes.cc b/buffet/error_codes.cc
new file mode 100644
index 0000000..bf51efc
--- /dev/null
+++ b/buffet/error_codes.cc
@@ -0,0 +1,22 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "buffet/error_codes.h"
+
+namespace buffet {
+namespace errors {
+
+namespace json {
+const char kDomain[] = "json_parser";
+const char kParseError[] = "json_parse_error";
+const char kObjectExpected[] = "json_object_expected";
+}  // namespace json
+
+namespace file_system {
+const char kDomain[] = "file_system";
+const char kFileReadError[] = "file_read_error";
+}  // namespace file_system
+
+}  // namespace errors
+}  // namespace buffet
diff --git a/buffet/error_codes.h b/buffet/error_codes.h
new file mode 100644
index 0000000..e2f5961
--- /dev/null
+++ b/buffet/error_codes.h
@@ -0,0 +1,25 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BUFFET_ERROR_CODES_H_
+#define BUFFET_ERROR_CODES_H_
+
+namespace buffet {
+namespace errors {
+
+namespace json {
+extern const char kDomain[];
+extern const char kParseError[];
+extern const char kObjectExpected[];
+}  // namespace json
+
+namespace file_system {
+extern const char kDomain[];
+extern const char kFileReadError[];
+}  // namespace file_system
+
+}  // namespace errors
+}  // namespace buffet
+
+#endif  // BUFFET_ERROR_CODES_H_
diff --git a/buffet/http_utils.cc b/buffet/http_utils.cc
index f7f1190..3924505 100644
--- a/buffet/http_utils.cc
+++ b/buffet/http_utils.cc
@@ -10,14 +10,13 @@
 #include <base/json/json_writer.h>
 #include <base/values.h>
 
-#include "buffet/mime_utils.h"
 #include "buffet/data_encoding.h"
+#include "buffet/error_codes.h"
+#include "buffet/mime_utils.h"
 
 namespace buffet {
 namespace http {
 
-const char kErrorDomainJSON[] = "json_parser";
-
 std::unique_ptr<Response> Get(const std::string& url,
                               const HeaderList& headers,
                               std::shared_ptr<Transport> transport,
@@ -140,7 +139,7 @@
   auto content_type = mime::RemoveParameters(response->GetContentType());
   if (content_type != mime::application::kJson &&
       content_type != mime::text::kPlain) {
-    Error::AddTo(error, kErrorDomainJSON, "non_json_content_type",
+    Error::AddTo(error, errors::json::kDomain, "non_json_content_type",
                  "Unexpected response content type: " + content_type);
     return std::unique_ptr<base::DictionaryValue>();
   }
@@ -150,13 +149,14 @@
   base::Value* value = base::JSONReader::ReadAndReturnError(
       json, base::JSON_PARSE_RFC, nullptr, &error_message);
   if (!value) {
-    Error::AddTo(error, kErrorDomainJSON, "json_parse_error", error_message);
+    Error::AddTo(error, errors::json::kDomain, errors::json::kParseError,
+                 error_message);
     return std::unique_ptr<base::DictionaryValue>();
   }
   base::DictionaryValue* dict_value = nullptr;
   if (!value->GetAsDictionary(&dict_value)) {
     delete value;
-    Error::AddTo(error, kErrorDomainJSON, "json_object_error",
+    Error::AddTo(error, errors::json::kDomain, errors::json::kObjectExpected,
                  "Response is not a valid JSON object");
     return std::unique_ptr<base::DictionaryValue>();
   }
diff --git a/buffet/http_utils.h b/buffet/http_utils.h
index 20e255b..0333c82 100644
--- a/buffet/http_utils.h
+++ b/buffet/http_utils.h
@@ -20,8 +20,6 @@
 namespace buffet {
 namespace http {
 
-extern const char kErrorDomainJSON[];
-
 typedef std::vector<std::pair<std::string, std::string>> FormFieldList;
 
 ////////////////////////////////////////////////////////////////////////////////
