[evolution-data-server/wip/mcrha/libical-glib] [Addressbook] Replace EDataBookStatus with EClientError and EBookClientError



commit 2d01f5e68307e085f958ace9943f2761ceb92b45
Author: Milan Crha <mcrha redhat com>
Date:   Thu Apr 11 14:00:38 2019 +0200

    [Addressbook] Replace EDataBookStatus with EClientError and EBookClientError
    
    The EDataBookStatus had been only an "error wrapper" on the backend side,
    which had been transformed into an EClientError or EBookClientError before
    being passed through D-Bus. Better to avoid it and use the client errors
    directly.

 .../backends/carddav/e-book-backend-carddav.c      |  32 +--
 .../file/e-book-backend-file-migrate-bdb.c         |  15 +-
 .../backends/google/e-book-backend-google.c        |  71 ++----
 .../backends/ldap/e-book-backend-ldap.c            | 202 +++++++--------
 .../libebook-contacts/e-book-contacts-utils.h      |  63 -----
 src/addressbook/libebook/e-book-view.c             |  17 +-
 .../libedata-book/e-book-meta-backend.c            |  54 ++--
 src/addressbook/libedata-book/e-data-book.c        | 276 ---------------------
 src/addressbook/libedata-book/e-data-book.h        |  16 --
 tests/libedata-book/test-book-meta-backend.c       |  18 +-
 10 files changed, 183 insertions(+), 581 deletions(-)
---
diff --git a/src/addressbook/backends/carddav/e-book-backend-carddav.c 
b/src/addressbook/backends/carddav/e-book-backend-carddav.c
index a41ed3b90..e0ba6b5f8 100644
--- a/src/addressbook/backends/carddav/e-book-backend-carddav.c
+++ b/src/addressbook/backends/carddav/e-book-backend-carddav.c
@@ -32,8 +32,9 @@
 
 #define E_WEBDAV_X_ETAG "X-EVOLUTION-WEBDAV-ETAG"
 
-#define EDB_ERROR(_code) e_data_book_create_error (_code, NULL)
-#define EDB_ERROR_EX(_code, _msg) e_data_book_create_error (_code, _msg)
+#define EC_ERROR(_code) e_client_error_create (_code, NULL)
+#define EC_ERROR_EX(_code, _msg) e_client_error_create (_code, _msg)
+#define EBC_ERROR(_code) e_book_client_error_create (_code, NULL)
 
 struct _EBookBackendCardDAVPrivate {
        /* The main WebDAV session  */
@@ -611,19 +612,19 @@ ebb_carddav_check_credentials_error (EBookBackendCardDAV *bbdav,
        g_return_if_fail (E_IS_BOOK_BACKEND_CARDDAV (bbdav));
 
        if (g_error_matches (op_error, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED) && webdav) {
-               op_error->domain = E_DATA_BOOK_ERROR;
-               op_error->code = E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE;
+               op_error->domain = E_CLIENT_ERROR;
+               op_error->code = E_CLIENT_ERROR_TLS_NOT_AVAILABLE;
        } else if (g_error_matches (op_error, SOUP_HTTP_ERROR, SOUP_STATUS_UNAUTHORIZED) ||
                   g_error_matches (op_error, SOUP_HTTP_ERROR, SOUP_STATUS_FORBIDDEN)) {
-               op_error->domain = E_DATA_BOOK_ERROR;
-               op_error->code = E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED;
+               op_error->domain = E_CLIENT_ERROR;
+               op_error->code = E_CLIENT_ERROR_AUTHENTICATION_REQUIRED;
 
                if (webdav) {
                        ENamedParameters *credentials;
 
                        credentials = e_soup_session_dup_credentials (E_SOUP_SESSION (webdav));
                        if (credentials && e_named_parameters_count (credentials) > 0)
-                               op_error->code = E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED;
+                               op_error->code = E_CLIENT_ERROR_AUTHENTICATION_FAILED;
 
                        e_named_parameters_free (credentials);
                }
@@ -983,7 +984,7 @@ ebb_carddav_load_contact_sync (EBookMetaBackend *meta_backend,
                                g_free (last_sync_tag);
                                g_free (new_sync_tag);
 
-                               g_propagate_error (error, EDB_ERROR (E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND));
+                               g_propagate_error (error, EBC_ERROR (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND));
 
                                return FALSE;
                        }
@@ -1034,11 +1035,11 @@ ebb_carddav_load_contact_sync (EBookMetaBackend *meta_backend,
                        success = FALSE;
 
                        if (!href)
-                               g_propagate_error (&local_error, EDB_ERROR_EX 
(E_DATA_BOOK_STATUS_OTHER_ERROR, _("Server didn’t return object’s href")));
+                               g_propagate_error (&local_error, EC_ERROR_EX (E_CLIENT_ERROR_OTHER_ERROR, 
_("Server didn’t return object’s href")));
                        else if (!etag)
-                               g_propagate_error (&local_error, EDB_ERROR_EX 
(E_DATA_BOOK_STATUS_OTHER_ERROR, _("Server didn’t return object’s ETag")));
+                               g_propagate_error (&local_error, EC_ERROR_EX (E_CLIENT_ERROR_OTHER_ERROR, 
_("Server didn’t return object’s ETag")));
                        else
-                               g_propagate_error (&local_error, EDB_ERROR_EX 
(E_DATA_BOOK_STATUS_OTHER_ERROR, _("Received object is not a valid vCard")));
+                               g_propagate_error (&local_error, EC_ERROR_EX (E_CLIENT_ERROR_OTHER_ERROR, 
_("Received object is not a valid vCard")));
                } else if (out_extra) {
                        *out_extra = g_strdup (href);
                }
@@ -1148,10 +1149,11 @@ ebb_carddav_save_contact_sync (EBookMetaBackend *meta_backend,
                g_free (new_etag);
        } else if (uid && vcard_string) {
                success = FALSE;
-               g_propagate_error (error, EDB_ERROR_EX (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Missing 
information about vCard URL, local cache is possibly incomplete or broken. Remove it, please.")));
+               g_propagate_error (error, EC_ERROR_EX (E_CLIENT_ERROR_OTHER_ERROR,
+                       _("Missing information about vCard URL, local cache is possibly incomplete or broken. 
Remove it, please.")));
        } else {
                success = FALSE;
-               g_propagate_error (error, EDB_ERROR_EX (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Object to save is 
not a valid vCard")));
+               g_propagate_error (error, EC_ERROR_EX (E_CLIENT_ERROR_OTHER_ERROR, _("Object to save is not a 
valid vCard")));
        }
 
        g_free (vcard_string);
@@ -1193,13 +1195,13 @@ ebb_carddav_remove_contact_sync (EBookMetaBackend *meta_backend,
        bbdav = E_BOOK_BACKEND_CARDDAV (meta_backend);
 
        if (!extra || !*extra) {
-               g_propagate_error (error, EDB_ERROR (E_DATA_BOOK_STATUS_INVALID_ARG));
+               g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_INVALID_ARG));
                return FALSE;
        }
 
        contact = e_contact_new_from_vcard (object);
        if (!contact) {
-               g_propagate_error (error, EDB_ERROR (E_DATA_BOOK_STATUS_INVALID_ARG));
+               g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_INVALID_ARG));
                return FALSE;
        }
 
diff --git a/src/addressbook/backends/file/e-book-backend-file-migrate-bdb.c 
b/src/addressbook/backends/file/e-book-backend-file-migrate-bdb.c
index 38b7a13f0..c9e9503e4 100644
--- a/src/addressbook/backends/file/e-book-backend-file-migrate-bdb.c
+++ b/src/addressbook/backends/file/e-book-backend-file-migrate-bdb.c
@@ -46,8 +46,9 @@
 #define E_BOOK_BACKEND_FILE_VERSION_NAME          "PAS-DB-VERSION"
 #define E_BOOK_BACKEND_FILE_LAST_BDB_VERSION      "0.2"
 
-#define EDB_ERROR(_code)          e_data_book_create_error (E_DATA_BOOK_STATUS_ ## _code, NULL)
-#define EDB_ERROR_EX(_code, _msg) e_data_book_create_error (E_DATA_BOOK_STATUS_ ## _code, _msg)
+#define EC_ERROR(_code)          e_client_error_create (_code, NULL)
+#define EC_ERROR_EX(_code, _msg) e_client_error_create (_code, _msg)
+#define EBC_ERROR(_code)         e_book_client_error_create (_code, NULL)
 
 G_LOCK_DEFINE_STATIC (db_env);
 static DB_ENV *db_env = NULL;
@@ -132,16 +133,16 @@ db_error_to_gerror (const gint db_error,
        case 0:
                return;
        case DB_NOTFOUND:
-               g_propagate_error (perror, EDB_ERROR (CONTACT_NOT_FOUND));
+               g_propagate_error (perror, EBC_ERROR (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND));
                return;
        case EACCES:
-               g_propagate_error (perror, EDB_ERROR (PERMISSION_DENIED));
+               g_propagate_error (perror, EC_ERROR (E_CLIENT_ERROR_PERMISSION_DENIED));
                return;
        default:
                g_propagate_error (
                        perror,
-                       e_data_book_create_error_fmt (
-                               E_DATA_BOOK_STATUS_OTHER_ERROR,
+                       e_client_error_create_fmt (
+                               E_CLIENT_ERROR_OTHER_ERROR,
                                "db error 0x%x (%s)", db_error,
                                db_strerror (db_error) ?
                                        db_strerror (db_error) :
@@ -510,7 +511,7 @@ e_book_backend_file_migrate_bdb (EBookSqlite *sqlitedb,
 
        /* Try another upgrade */
        if (!e_book_backend_file_maybe_upgrade_db (db)) {
-               g_propagate_error (error, EDB_ERROR_EX (OTHER_ERROR, "e_book_backend_file_maybe_upgrade_db 
failed"));
+               g_propagate_error (error, EC_ERROR_EX (E_CLIENT_ERROR_OTHER_ERROR, 
"e_book_backend_file_maybe_upgrade_db failed"));
                goto close_db;
        }
 
diff --git a/src/addressbook/backends/google/e-book-backend-google.c 
b/src/addressbook/backends/google/e-book-backend-google.c
index e96a4ea77..0008303c2 100644
--- a/src/addressbook/backends/google/e-book-backend-google.c
+++ b/src/addressbook/backends/google/e-book-backend-google.c
@@ -86,58 +86,36 @@ ebb_google_data_book_error_from_gdata_error (GError **error,
        if (gdata_error->domain == GDATA_SERVICE_ERROR) {
                switch (gdata_error->code) {
                case GDATA_SERVICE_ERROR_UNAVAILABLE:
-                       g_set_error_literal (
-                               error, E_CLIENT_ERROR,
-                               E_CLIENT_ERROR_REPOSITORY_OFFLINE,
-                               e_client_error_to_string (
-                               E_CLIENT_ERROR_REPOSITORY_OFFLINE));
+                       g_propagate_error (error,
+                               e_client_error_create (E_CLIENT_ERROR_REPOSITORY_OFFLINE, NULL));
                        break;
                case GDATA_SERVICE_ERROR_PROTOCOL_ERROR:
-                       g_set_error_literal (
-                               error, E_CLIENT_ERROR,
-                               E_CLIENT_ERROR_INVALID_QUERY,
-                               gdata_error->message);
+                       g_propagate_error (error,
+                               e_client_error_create (E_CLIENT_ERROR_INVALID_QUERY, gdata_error->message));
                        break;
                case GDATA_SERVICE_ERROR_ENTRY_ALREADY_INSERTED:
-                       g_set_error_literal (
-                               error, E_BOOK_CLIENT_ERROR,
-                               E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS,
-                               e_book_client_error_to_string (
-                               E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS));
+                       g_propagate_error (error,
+                               e_book_client_error_create (E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS, 
NULL));
                        break;
                case GDATA_SERVICE_ERROR_AUTHENTICATION_REQUIRED:
-                       g_set_error_literal (
-                               error, E_CLIENT_ERROR,
-                               E_CLIENT_ERROR_AUTHENTICATION_REQUIRED,
-                               e_client_error_to_string (
-                               E_CLIENT_ERROR_AUTHENTICATION_REQUIRED));
+                       g_propagate_error (error,
+                               e_client_error_create (E_CLIENT_ERROR_AUTHENTICATION_REQUIRED, NULL));
                        break;
                case GDATA_SERVICE_ERROR_NOT_FOUND:
-                       g_set_error_literal (
-                               error, E_BOOK_CLIENT_ERROR,
-                               E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND,
-                               e_book_client_error_to_string (
-                               E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND));
+                       g_propagate_error (error,
+                               e_book_client_error_create (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND, NULL));
                        break;
                case GDATA_SERVICE_ERROR_CONFLICT:
-                       g_set_error_literal (
-                               error, E_BOOK_CLIENT_ERROR,
-                               E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS,
-                               e_book_client_error_to_string (
-                               E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS));
+                       g_propagate_error (error,
+                               e_book_client_error_create (E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS, 
NULL));
                        break;
                case GDATA_SERVICE_ERROR_FORBIDDEN:
-                       g_set_error_literal (
-                               error, E_CLIENT_ERROR,
-                               E_CLIENT_ERROR_QUERY_REFUSED,
-                               e_client_error_to_string (
-                               E_CLIENT_ERROR_QUERY_REFUSED));
+                       g_propagate_error (error,
+                               e_client_error_create (E_CLIENT_ERROR_QUERY_REFUSED, NULL));
                        break;
                case GDATA_SERVICE_ERROR_BAD_QUERY_PARAMETER:
-                       g_set_error_literal (
-                               error, E_CLIENT_ERROR,
-                               E_CLIENT_ERROR_INVALID_QUERY,
-                               gdata_error->message);
+                       g_propagate_error (error,
+                               e_client_error_create (E_CLIENT_ERROR_INVALID_QUERY, gdata_error->message));
                        break;
                default:
                        use_fallback = TRUE;
@@ -149,11 +127,10 @@ ebb_google_data_book_error_from_gdata_error (GError **error,
        }
 
        /* Generic fallback */
-       if (use_fallback)
-               g_set_error_literal (
-                       error, E_CLIENT_ERROR,
-                       E_CLIENT_ERROR_OTHER_ERROR,
-                       gdata_error->message);
+       if (use_fallback) {
+               g_propagate_error (error,
+                       e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, gdata_error->message));
+       }
 }
 
 static gboolean
@@ -1008,7 +985,7 @@ ebb_google_save_contact_sync (EBookMetaBackend *meta_backend,
 
        if (!entry) {
                g_rec_mutex_unlock (&bbgoogle->priv->conn_lock);
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Object 
to save is not a valid vCard")));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, _("Object to 
save is not a valid vCard")));
                return FALSE;
        }
 
@@ -1064,7 +1041,7 @@ ebb_google_save_contact_sync (EBookMetaBackend *meta_backend,
        if (!new_contact) {
                g_object_unref (gdata_contact);
                e_contact_photo_free (photo);
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Failed 
to create contact from returned server data")));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, _("Failed to 
create contact from returned server data")));
                return FALSE;
        }
 
@@ -1080,7 +1057,7 @@ ebb_google_save_contact_sync (EBookMetaBackend *meta_backend,
        uid = e_contact_get_const (new_contact, E_CONTACT_UID);
 
        if (!uid) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Server 
returned contact without UID")));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, _("Server 
returned contact without UID")));
 
                g_object_unref (new_contact);
                g_free (*out_new_extra);
@@ -1119,7 +1096,7 @@ ebb_google_remove_contact_sync (EBookMetaBackend *meta_backend,
 
        entry = GDATA_ENTRY (gdata_parsable_new_from_xml (GDATA_TYPE_CONTACTS_CONTACT, extra, -1, NULL));
        if (!entry) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_INVALID_ARG, NULL));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_INVALID_ARG, NULL));
                return FALSE;
        }
 
diff --git a/src/addressbook/backends/ldap/e-book-backend-ldap.c 
b/src/addressbook/backends/ldap/e-book-backend-ldap.c
index bbde5e799..624736e43 100644
--- a/src/addressbook/backends/ldap/e-book-backend-ldap.c
+++ b/src/addressbook/backends/ldap/e-book-backend-ldap.c
@@ -103,18 +103,14 @@ static gchar *    e_book_backend_ldap_build_query (EBookBackendLDAP *bl,
 
 typedef struct LDAPOp LDAPOp;
 
-#define EDB_ERROR(_code) \
-       (e_data_book_create_error (E_DATA_BOOK_STATUS_ ## _code, NULL))
-#define EDB_ERROR_EX(_code, _msg) \
-       (e_data_book_create_error (E_DATA_BOOK_STATUS_ ## _code, _msg))
+#define EC_ERROR(_code) e_client_error_create (_code, NULL)
+#define EC_ERROR_EX(_code, _msg)  e_client_error_create (_code, _msg)
+#define EBC_ERROR(_code) e_book_client_error_create (_code, NULL)
+
 /* Translators: An error message shown to a user when trying to do an
  * operation on the LDAP address book which is not connected to the server */
-#define EDB_ERROR_NOT_CONNECTED() (e_data_book_create_error (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Not 
connected")))
-#define EDB_ERROR_MSG_TYPE(_msg_type) \
-       (e_data_book_create_error_fmt ( \
-       E_DATA_BOOK_STATUS_INVALID_ARG, \
-       "Incorrect msg type %d passed to %s", \
-       _msg_type, G_STRFUNC))
+#define EC_ERROR_NOT_CONNECTED() e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, _("Not connected"))
+#define EC_ERROR_MSG_TYPE(_msg_type) e_client_error_create_fmt (E_CLIENT_ERROR_INVALID_ARG, "Incorrect msg 
type %d passed to %s", _msg_type, G_STRFUNC)
 
 G_DEFINE_TYPE (EBookBackendLDAP, e_book_backend_ldap, E_TYPE_BOOK_BACKEND)
 
@@ -809,7 +805,7 @@ e_book_backend_ldap_connect (EBookBackendLDAP *bl,
                        ldap_unbind (blpriv->ldap);
                        blpriv->ldap = NULL;
                        g_rec_mutex_unlock (&eds_ldap_handler_lock);
-                       g_propagate_error (error, EDB_ERROR (TLS_NOT_AVAILABLE));
+                       g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_TLS_NOT_AVAILABLE));
                        return FALSE;
                }
 
@@ -845,7 +841,7 @@ e_book_backend_ldap_connect (EBookBackendLDAP *bl,
                                ldap_unbind (blpriv->ldap);
                                blpriv->ldap = NULL;
                                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-                               g_propagate_error (error, EDB_ERROR (TLS_NOT_AVAILABLE));
+                               g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_TLS_NOT_AVAILABLE));
                                return FALSE;
                        } else if (enable_debug)
                                g_message ("TLS active");
@@ -875,10 +871,8 @@ e_book_backend_ldap_connect (EBookBackendLDAP *bl,
                                blpriv->ldap = NULL;
                        }
                        g_rec_mutex_unlock (&eds_ldap_handler_lock);
-                       g_propagate_error (
-                               error, e_data_book_create_error (
-                               E_DATA_BOOK_STATUS_OTHER_ERROR,
-                               _("Failed to bind using either v3 or v2 binds")));
+                       g_propagate_error (error,
+                               e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, _("Failed to bind using 
either v3 or v2 binds")));
                        return FALSE;
 
                } else if (ldap_error == LDAP_SERVER_DOWN) {
@@ -889,7 +883,7 @@ e_book_backend_ldap_connect (EBookBackendLDAP *bl,
                                blpriv->ldap = NULL;
                        }
                        g_rec_mutex_unlock (&eds_ldap_handler_lock);
-                       g_propagate_error (error, EDB_ERROR (REPOSITORY_OFFLINE));
+                       g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_REPOSITORY_OFFLINE));
                        return FALSE;
                } else if (ldap_error == LDAP_INVALID_CREDENTIALS) {
                        g_warning ("Invalid credentials while connecting (ldap_error 0x%02x)", ldap_error);
@@ -898,7 +892,7 @@ e_book_backend_ldap_connect (EBookBackendLDAP *bl,
                                blpriv->ldap = NULL;
                        }
                        g_rec_mutex_unlock (&eds_ldap_handler_lock);
-                       g_propagate_error (error, EDB_ERROR (AUTHENTICATION_FAILED));
+                       g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_AUTHENTICATION_FAILED));
                        return FALSE;
                }
 
@@ -945,7 +939,7 @@ e_book_backend_ldap_connect (EBookBackendLDAP *bl,
                                blpriv->ldap = NULL;
                        }
                        g_rec_mutex_unlock (&eds_ldap_handler_lock);
-                       g_propagate_error (error, EDB_ERROR (AUTHENTICATION_FAILED));
+                       g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_AUTHENTICATION_FAILED));
                        return FALSE;
                } else {
                        if (blpriv->ldap) {
@@ -971,7 +965,7 @@ e_book_backend_ldap_connect (EBookBackendLDAP *bl,
                blpriv->ldap_rootdn ? blpriv->ldap_rootdn : "");
        blpriv->connected = FALSE;
 
-       g_propagate_error (error, EDB_ERROR (REPOSITORY_OFFLINE));
+       g_propagate_error (error, EC_ERROR (E_CLIENT_ERROR_REPOSITORY_OFFLINE));
 
        return FALSE;
 }
@@ -1135,24 +1129,24 @@ static GError *
 ldap_error_to_response (gint ldap_error)
 {
        if (ldap_error == LDAP_SUCCESS)
-               return EDB_ERROR (SUCCESS);
+               return NULL;
        else if (ldap_error == LDAP_INVALID_DN_SYNTAX)
-               return e_data_book_create_error (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Invalid DN syntax"));
+               return e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, _("Invalid DN syntax"));
        else if (LDAP_NAME_ERROR (ldap_error))
-               return EDB_ERROR (CONTACT_NOT_FOUND);
+               return EBC_ERROR (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND);
        else if (ldap_error == LDAP_INSUFFICIENT_ACCESS)
-               return EDB_ERROR (PERMISSION_DENIED);
+               return EC_ERROR (E_CLIENT_ERROR_PERMISSION_DENIED);
        else if (ldap_error == LDAP_STRONG_AUTH_REQUIRED)
-               return EDB_ERROR (AUTHENTICATION_REQUIRED);
+               return EC_ERROR (E_CLIENT_ERROR_AUTHENTICATION_REQUIRED);
        else if (ldap_error == LDAP_SERVER_DOWN)
-               return EDB_ERROR (REPOSITORY_OFFLINE);
+               return EC_ERROR (E_CLIENT_ERROR_REPOSITORY_OFFLINE);
        else if (ldap_error == LDAP_ALREADY_EXISTS)
-               return EDB_ERROR (CONTACTID_ALREADY_EXISTS);
+               return EBC_ERROR (E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS);
        else if (ldap_error == LDAP_TYPE_OR_VALUE_EXISTS )
-               return EDB_ERROR (CONTACTID_ALREADY_EXISTS);
+               return EBC_ERROR (E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS);
        else
-               return e_data_book_create_error_fmt (
-                       E_DATA_BOOK_STATUS_OTHER_ERROR,
+               return e_client_error_create_fmt (
+                       E_CLIENT_ERROR_OTHER_ERROR,
                        _("LDAP error 0x%x (%s)"), ldap_error,
                        ldap_err2string (ldap_error) ?
                        ldap_err2string (ldap_error) :
@@ -1528,7 +1522,7 @@ create_contact_handler (LDAPOp *op,
                e_data_book_respond_create_contacts (
                        op->book,
                        op->opid,
-                       EDB_ERROR_NOT_CONNECTED (),
+                       EC_ERROR_NOT_CONNECTED (),
                        NULL);
                ldap_op_finished (op);
                return;
@@ -1539,7 +1533,7 @@ create_contact_handler (LDAPOp *op,
                e_data_book_respond_create_contacts (
                        op->book,
                        op->opid,
-                       EDB_ERROR_MSG_TYPE (ldap_msgtype (res)),
+                       EC_ERROR_MSG_TYPE (ldap_msgtype (res)),
                        NULL);
                ldap_op_finished (op);
                return;
@@ -1599,7 +1593,7 @@ remove_contact_handler (LDAPOp *op,
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_remove_contacts (op->book, op->opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_remove_contacts (op->book, op->opid, EC_ERROR_NOT_CONNECTED (), NULL);
                ldap_op_finished (op);
                return;
        }
@@ -1609,7 +1603,7 @@ remove_contact_handler (LDAPOp *op,
                e_data_book_respond_remove_contacts (
                        op->book,
                        op->opid,
-                       EDB_ERROR_MSG_TYPE (ldap_msgtype (res)),
+                       EC_ERROR_MSG_TYPE (ldap_msgtype (res)),
                        NULL);
                ldap_op_finished (op);
                return;
@@ -1688,7 +1682,7 @@ modify_contact_modify_handler (LDAPOp *op,
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
                e_data_book_respond_modify_contacts (op->book,
                                                     op->opid,
-                                                    EDB_ERROR_NOT_CONNECTED (),
+                                                    EC_ERROR_NOT_CONNECTED (),
                                                     NULL);
                ldap_op_finished (op);
                return;
@@ -1698,7 +1692,7 @@ modify_contact_modify_handler (LDAPOp *op,
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
                e_data_book_respond_modify_contacts (op->book,
                                                     op->opid,
-                                                    EDB_ERROR_MSG_TYPE (ldap_msgtype (res)),
+                                                    EC_ERROR_MSG_TYPE (ldap_msgtype (res)),
                                                     NULL);
                ldap_op_finished (op);
                return;
@@ -1743,7 +1737,7 @@ modify_contact_search_handler (LDAPOp *op,
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
                e_data_book_respond_modify_contacts (op->book, op->opid,
-                                                    EDB_ERROR_NOT_CONNECTED (), NULL);
+                                                    EC_ERROR_NOT_CONNECTED (), NULL);
                ldap_op_finished (op);
                return;
        }
@@ -1767,10 +1761,8 @@ modify_contact_search_handler (LDAPOp *op,
                if (!e) {
                        e_data_book_respond_modify_contacts (
                                op->book, op->opid,
-                               e_data_book_create_error_fmt (
-                                       E_DATA_BOOK_STATUS_OTHER_ERROR,
-                                       _("%s: NULL returned from ldap_first_entry"),
-                                       G_STRFUNC),
+                               e_client_error_create_fmt (E_CLIENT_ERROR_OTHER_ERROR,
+                                       _("%s: NULL returned from ldap_first_entry"), G_STRFUNC),
                                NULL);
                        ldap_op_finished (op);
                        return;
@@ -1908,7 +1900,7 @@ modify_contact_rename_handler (LDAPOp *op,
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
                e_data_book_respond_modify_contacts (op->book,
                                                     op->opid,
-                                                    EDB_ERROR_NOT_CONNECTED (),
+                                                    EC_ERROR_NOT_CONNECTED (),
                                                     NULL);
                ldap_op_finished (op);
                return;
@@ -1920,7 +1912,7 @@ modify_contact_rename_handler (LDAPOp *op,
                if (LDAP_RES_RENAME != ldap_msgtype (res)) {
                        e_data_book_respond_modify_contacts (op->book,
                                                             op->opid,
-                                                            EDB_ERROR_MSG_TYPE (ldap_msgtype (res)),
+                                                            EC_ERROR_MSG_TYPE (ldap_msgtype (res)),
                                                             NULL);
                        ldap_op_finished (op);
                        return;
@@ -2039,7 +2031,7 @@ modify_contact_rename_handler (LDAPOp *op,
        } else {
                e_data_book_respond_modify_contacts (op->book,
                                                     op->opid,
-                                                    e_data_book_create_error_fmt 
(E_DATA_BOOK_STATUS_OTHER_ERROR,
+                                                    e_client_error_create_fmt (E_CLIENT_ERROR_OTHER_ERROR,
                                                     _("%s: Unhandled result type %d returned"), G_STRFUNC, 
ldap_msgtype (res)),
                                                     NULL);
                ldap_op_finished (op);
@@ -2084,7 +2076,7 @@ get_contact_handler (LDAPOp *op,
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_get_contact (op->book, op->opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_get_contact (op->book, op->opid, EC_ERROR_NOT_CONNECTED (), NULL);
                ldap_op_finished (op);
                if (enable_debug)
                        printf ("get_contact_handler... ldap handler is NULL \n");
@@ -2110,8 +2102,8 @@ get_contact_handler (LDAPOp *op,
                if (!e) {
                        e_data_book_respond_get_contact (
                                op->book, op->opid,
-                               e_data_book_create_error_fmt (
-                                       E_DATA_BOOK_STATUS_OTHER_ERROR,
+                               e_client_error_create_fmt (
+                                       E_CLIENT_ERROR_OTHER_ERROR,
                                        _("%s: NULL returned from ldap_first_entry"),
                                        G_STRFUNC),
                                NULL);
@@ -2123,8 +2115,8 @@ get_contact_handler (LDAPOp *op,
                if (!contact) {
                        e_data_book_respond_get_contact (
                                op->book, op->opid,
-                               e_data_book_create_error_fmt (
-                                       E_DATA_BOOK_STATUS_OTHER_ERROR,
+                               e_client_error_create_fmt (
+                                       E_CLIENT_ERROR_OTHER_ERROR,
                                        _("%s: NULL returned from ldap_first_entry"),
                                        G_STRFUNC),
                                NULL);
@@ -2135,7 +2127,7 @@ get_contact_handler (LDAPOp *op,
                e_data_book_respond_get_contact (
                        op->book,
                        op->opid,
-                       EDB_ERROR (SUCCESS),
+                       NULL,
                        contact);
                g_object_unref (contact);
                ldap_op_finished (op);
@@ -2183,7 +2175,7 @@ get_contact_handler (LDAPOp *op,
                e_data_book_respond_get_contact (
                        op->book,
                        op->opid,
-                       e_data_book_create_error_fmt (E_DATA_BOOK_STATUS_OTHER_ERROR,
+                       e_client_error_create_fmt (E_CLIENT_ERROR_OTHER_ERROR,
                                                        _("%s: Unhandled result type %d returned"), 
G_STRFUNC, msg_type),
                        NULL);
                ldap_op_finished (op);
@@ -2223,7 +2215,7 @@ contact_list_handler (LDAPOp *op,
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_get_contact_list (op->book, op->opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_get_contact_list (op->book, op->opid, EC_ERROR_NOT_CONNECTED (), NULL);
                ldap_op_finished (op);
                if (enable_debug)
                        printf ("contact_list_handler ... ldap handler is NULL \n");
@@ -2293,19 +2285,19 @@ contact_list_handler (LDAPOp *op,
                        e_data_book_respond_get_contact_list (
                                op->book,
                                op->opid,
-                               EDB_ERROR (SEARCH_TIME_LIMIT_EXCEEDED),
+                               EC_ERROR (E_CLIENT_ERROR_SEARCH_TIME_LIMIT_EXCEEDED),
                                contact_list_op->contacts);
                else if (ldap_error == LDAP_SIZELIMIT_EXCEEDED)
                        e_data_book_respond_get_contact_list (
                                op->book,
                                op->opid,
-                               EDB_ERROR (SEARCH_SIZE_LIMIT_EXCEEDED),
+                               EC_ERROR (E_CLIENT_ERROR_SEARCH_SIZE_LIMIT_EXCEEDED),
                                contact_list_op->contacts);
                else if (ldap_error == LDAP_SUCCESS)
                        e_data_book_respond_get_contact_list (
                                op->book,
                                op->opid,
-                               EDB_ERROR (SUCCESS),
+                               NULL,
                                contact_list_op->contacts);
                else
                        e_data_book_respond_get_contact_list (
@@ -2328,7 +2320,7 @@ contact_list_handler (LDAPOp *op,
                e_data_book_respond_get_contact_list (
                        op->book,
                        op->opid,
-                       e_data_book_create_error_fmt (E_DATA_BOOK_STATUS_OTHER_ERROR,
+                       e_client_error_create_fmt (E_CLIENT_ERROR_OTHER_ERROR,
                        _("%s: Unhandled search result type %d returned"), G_STRFUNC, msg_type),
                        NULL);
                ldap_op_finished (op);
@@ -2369,7 +2361,7 @@ contact_list_uids_handler (LDAPOp *op,
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_get_contact_list_uids (op->book, op->opid, EDB_ERROR_NOT_CONNECTED (), 
NULL);
+               e_data_book_respond_get_contact_list_uids (op->book, op->opid, EC_ERROR_NOT_CONNECTED (), 
NULL);
                ldap_op_finished (op);
                if (enable_debug)
                        printf ("contact_list_uids_handler ... ldap handler is NULL \n");
@@ -2435,17 +2427,17 @@ contact_list_uids_handler (LDAPOp *op,
                if (ldap_error == LDAP_TIMELIMIT_EXCEEDED)
                        e_data_book_respond_get_contact_list_uids (
                                op->book, op->opid,
-                               EDB_ERROR (SEARCH_TIME_LIMIT_EXCEEDED),
+                               EC_ERROR (E_CLIENT_ERROR_SEARCH_TIME_LIMIT_EXCEEDED),
                                contact_list_uids_op->uids);
                else if (ldap_error == LDAP_SIZELIMIT_EXCEEDED)
                        e_data_book_respond_get_contact_list_uids (
                                op->book, op->opid,
-                               EDB_ERROR (SEARCH_SIZE_LIMIT_EXCEEDED),
+                               EC_ERROR (E_CLIENT_ERROR_SEARCH_SIZE_LIMIT_EXCEEDED),
                                contact_list_uids_op->uids);
                else if (ldap_error == LDAP_SUCCESS)
                        e_data_book_respond_get_contact_list_uids (
                                op->book, op->opid,
-                               EDB_ERROR (SUCCESS),
+                               NULL,
                                contact_list_uids_op->uids);
                else
                        e_data_book_respond_get_contact_list_uids (
@@ -2466,7 +2458,7 @@ contact_list_uids_handler (LDAPOp *op,
                g_warning ("unhandled search result type %d returned", msg_type);
                e_data_book_respond_get_contact_list_uids (
                        op->book, op->opid,
-                       e_data_book_create_error_fmt (E_DATA_BOOK_STATUS_OTHER_ERROR,
+                       e_client_error_create_fmt (E_CLIENT_ERROR_OTHER_ERROR,
                        _("%s: Unhandled search result type %d returned"), G_STRFUNC, msg_type),
                        NULL);
                ldap_op_finished (op);
@@ -4241,7 +4233,7 @@ ldap_search_handler (LDAPOp *op,
 
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
-               GError *edb_err = EDB_ERROR_NOT_CONNECTED ();
+               GError *edb_err = EC_ERROR_NOT_CONNECTED ();
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
                e_data_book_view_notify_complete (view, edb_err);
                ldap_op_finished (op);
@@ -4284,7 +4276,7 @@ ldap_search_handler (LDAPOp *op,
        } else if (msg_type == LDAP_RES_SEARCH_REFERENCE) {
                /* ignore references */
        } else if (msg_type == LDAP_RES_SEARCH_RESULT) {
-               GError *edb_err = NULL;
+               GError *ec_err = NULL;
                gchar *ldap_error_msg = NULL;
                gint ldap_error;
 
@@ -4307,23 +4299,19 @@ ldap_search_handler (LDAPOp *op,
                        ldap_memfree (ldap_error_msg);
 
                if ((ldap_error == LDAP_TIMELIMIT_EXCEEDED || ldap_error == LDAP_SIZELIMIT_EXCEEDED) && 
can_browse ((EBookBackend *) bl))
-                       /* do not complain when search limit exceeded for browseable LDAPs */
-                       edb_err = EDB_ERROR (SUCCESS);
+                       ;/* do not complain when search limit exceeded for browseable LDAPs */
                else if (ldap_error == LDAP_TIMELIMIT_EXCEEDED)
-                       edb_err = EDB_ERROR (SEARCH_TIME_LIMIT_EXCEEDED);
+                       ec_err = EC_ERROR (E_CLIENT_ERROR_SEARCH_TIME_LIMIT_EXCEEDED);
                else if (ldap_error == LDAP_SIZELIMIT_EXCEEDED)
-                       edb_err = EDB_ERROR (SEARCH_SIZE_LIMIT_EXCEEDED);
-               else if (ldap_error == LDAP_SUCCESS)
-                       edb_err = EDB_ERROR (SUCCESS);
-               else
-                       edb_err = e_data_book_create_error_fmt (
-                               E_DATA_BOOK_STATUS_OTHER_ERROR,
+                       ec_err = EC_ERROR (E_CLIENT_ERROR_SEARCH_SIZE_LIMIT_EXCEEDED);
+               else if (ldap_error != LDAP_SUCCESS)
+                       ec_err = e_client_error_create_fmt (
+                               E_CLIENT_ERROR_OTHER_ERROR,
                                _("LDAP error 0x%x (%s)"), ldap_error,
                                ldap_err2string (ldap_error) ? ldap_err2string (ldap_error) : _("Unknown 
error"));
 
-               e_data_book_view_notify_complete (view, edb_err);
-               if (edb_err)
-                       g_error_free (edb_err);
+               e_data_book_view_notify_complete (view, ec_err);
+               g_clear_error (&ec_err);
 
                ldap_op_finished (op);
                if (enable_debug) {
@@ -4335,11 +4323,11 @@ ldap_search_handler (LDAPOp *op,
                }
        }
        else {
-               GError *edb_err = EDB_ERROR (INVALID_QUERY);
+               GError *ec_err = EC_ERROR (E_CLIENT_ERROR_INVALID_QUERY);
                g_warning ("unhandled search result type %d returned", msg_type);
-               e_data_book_view_notify_complete (view, edb_err);
+               e_data_book_view_notify_complete (view, ec_err);
                ldap_op_finished (op);
-               g_error_free (edb_err);
+               g_error_free (ec_err);
        }
 }
 
@@ -4387,7 +4375,7 @@ e_book_backend_ldap_search (EBookBackendLDAP *bl,
 
        if (!e_backend_get_online (E_BACKEND (bl)) || (bl->priv->marked_for_offline && bl->priv->cache)) {
                if (!(bl->priv->marked_for_offline && bl->priv->cache)) {
-                       GError *edb_err = EDB_ERROR (REPOSITORY_OFFLINE);
+                       GError *edb_err = EC_ERROR (E_CLIENT_ERROR_REPOSITORY_OFFLINE);
                        e_data_book_view_notify_complete (view, edb_err);
                        g_error_free (edb_err);
                        return;
@@ -5018,7 +5006,7 @@ book_backend_ldap_open (EBookBackend *backend,
                e_book_backend_set_writable (backend, FALSE);
 
                if (!bl->priv->marked_for_offline)
-                       error = EDB_ERROR (OFFLINE_UNAVAILABLE);
+                       error = EC_ERROR (E_CLIENT_ERROR_OFFLINE_UNAVAILABLE);
 
                e_data_book_respond_open (book, opid, error);
                return;
@@ -5033,10 +5021,7 @@ book_backend_ldap_open (EBookBackend *backend,
        if (!auth_required)
                e_book_backend_ldap_connect (bl, &error);
 
-       if (g_error_matches (
-               error, E_DATA_BOOK_ERROR,
-               E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED)) {
-
+       if (g_error_matches (error, E_CLIENT_ERROR, E_CLIENT_ERROR_AUTHENTICATION_REQUIRED)) {
                g_clear_error (&error);
                auth_required = TRUE;
        }
@@ -5089,21 +5074,21 @@ book_backend_ldap_create_contacts (EBookBackend *backend,
        if (!vcards[0] || vcards[1]) {
                e_data_book_respond_create_contacts (
                        book, opid,
-                       EDB_ERROR_EX (NOT_SUPPORTED,
+                       EC_ERROR_EX (E_CLIENT_ERROR_NOT_SUPPORTED,
                        _("The backend does not support bulk additions")),
                        NULL);
                return;
        }
 
        if (!e_backend_get_online (E_BACKEND (backend))) {
-               e_data_book_respond_create_contacts (book, opid, EDB_ERROR (REPOSITORY_OFFLINE), NULL);
+               e_data_book_respond_create_contacts (book, opid, EC_ERROR 
(E_CLIENT_ERROR_REPOSITORY_OFFLINE), NULL);
                return;
        }
 
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_create_contacts (book, opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_create_contacts (book, opid, EC_ERROR_NOT_CONNECTED (), NULL);
                return;
        }
        g_rec_mutex_unlock (&eds_ldap_handler_lock);
@@ -5227,7 +5212,7 @@ book_backend_ldap_modify_contacts (EBookBackend *backend,
        vcard = vcards[0];
 
        if (!e_backend_get_online (E_BACKEND (backend))) {
-               e_data_book_respond_modify_contacts (book, opid, EDB_ERROR (REPOSITORY_OFFLINE), NULL);
+               e_data_book_respond_modify_contacts (book, opid, EC_ERROR 
(E_CLIENT_ERROR_REPOSITORY_OFFLINE), NULL);
                return;
        }
 
@@ -5235,7 +5220,7 @@ book_backend_ldap_modify_contacts (EBookBackend *backend,
         * in our static capability list. This is because there is no clean way to roll back changes in case 
of an error. */
        if (!vcards[0] || vcards[1]) {
                e_data_book_respond_modify_contacts (book, opid,
-                                                    EDB_ERROR_EX (NOT_SUPPORTED,
+                                                    EC_ERROR_EX (E_CLIENT_ERROR_NOT_SUPPORTED,
                                                     _("The backend does not support bulk modifications")),
                                                     NULL);
                return;
@@ -5244,7 +5229,7 @@ book_backend_ldap_modify_contacts (EBookBackend *backend,
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_modify_contacts (book, opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_modify_contacts (book, opid, EC_ERROR_NOT_CONNECTED (), NULL);
                return;
        }
        g_rec_mutex_unlock (&eds_ldap_handler_lock);
@@ -5307,14 +5292,14 @@ book_backend_ldap_remove_contacts (EBookBackend *backend,
        g_return_if_fail (uids != NULL);
 
        if (!e_backend_get_online (E_BACKEND (backend))) {
-               e_data_book_respond_remove_contacts (book, opid, EDB_ERROR (REPOSITORY_OFFLINE), NULL);
+               e_data_book_respond_remove_contacts (book, opid, EC_ERROR 
(E_CLIENT_ERROR_REPOSITORY_OFFLINE), NULL);
                return;
        }
 
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_remove_contacts (book, opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_remove_contacts (book, opid, EC_ERROR_NOT_CONNECTED (), NULL);
                return;
        }
        g_rec_mutex_unlock (&eds_ldap_handler_lock);
@@ -5382,20 +5367,20 @@ book_backend_ldap_get_contact (EBookBackend *backend,
                        EContact *contact = e_book_backend_cache_get_contact (bl->priv->cache, id);
 
                        if (!contact) {
-                               e_data_book_respond_get_contact (book, opid, EDB_ERROR (CONTACT_NOT_FOUND), 
NULL);
+                               e_data_book_respond_get_contact (book, opid, EBC_ERROR 
(E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND), NULL);
                                return;
                        }
 
                        e_data_book_respond_get_contact (
                                book,
                                opid,
-                               EDB_ERROR (SUCCESS),
+                               NULL,
                                contact);
                        g_object_unref (contact);
                        return;
                }
 
-               e_data_book_respond_get_contact (book, opid, EDB_ERROR (REPOSITORY_OFFLINE), NULL);
+               e_data_book_respond_get_contact (book, opid, EC_ERROR (E_CLIENT_ERROR_REPOSITORY_OFFLINE), 
NULL);
                return;
        }
 
@@ -5407,7 +5392,7 @@ book_backend_ldap_get_contact (EBookBackend *backend,
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_get_contact (book, opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_get_contact (book, opid, EC_ERROR_NOT_CONNECTED (), NULL);
                if (enable_debug)
                        printf ("e_book_backend_ldap_get_contact ... ldap handler is NULL\n");
                return;
@@ -5492,21 +5477,21 @@ book_backend_ldap_get_contact_list (EBookBackend *backend,
                                contacts_slist = g_slist_prepend (contacts_slist, contact);
                        }
 
-                       e_data_book_respond_get_contact_list (book, opid, EDB_ERROR (SUCCESS), 
contacts_slist);
+                       e_data_book_respond_get_contact_list (book, opid, NULL, contacts_slist);
 
                        g_list_free_full (contacts, g_object_unref);
                        g_slist_free (contacts_slist);
                        return;
                }
 
-               e_data_book_respond_get_contact_list (book, opid, EDB_ERROR (REPOSITORY_OFFLINE), NULL);
+               e_data_book_respond_get_contact_list (book, opid, EC_ERROR 
(E_CLIENT_ERROR_REPOSITORY_OFFLINE), NULL);
                return;
        }
 
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_get_contact_list (book, opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_get_contact_list (book, opid, EC_ERROR_NOT_CONNECTED (), NULL);
                if (enable_debug)
                        printf ("e_book_backend_ldap_get_contact_list... ldap handler is NULL\n");
                return;
@@ -5600,19 +5585,19 @@ book_backend_ldap_get_contact_list_uids (EBookBackend *backend,
                        }
 
                        g_list_free (contacts);
-                       e_data_book_respond_get_contact_list_uids (book, opid, EDB_ERROR (SUCCESS), uids);
+                       e_data_book_respond_get_contact_list_uids (book, opid, NULL, uids);
                        g_slist_free_full (uids, g_free);
                        return;
                }
 
-               e_data_book_respond_get_contact_list_uids (book, opid, EDB_ERROR (REPOSITORY_OFFLINE), NULL);
+               e_data_book_respond_get_contact_list_uids (book, opid, EC_ERROR 
(E_CLIENT_ERROR_REPOSITORY_OFFLINE), NULL);
                return;
        }
 
        g_rec_mutex_lock (&eds_ldap_handler_lock);
        if (!bl->priv->ldap) {
                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-               e_data_book_respond_get_contact_list_uids (book, opid, EDB_ERROR_NOT_CONNECTED (), NULL);
+               e_data_book_respond_get_contact_list_uids (book, opid, EC_ERROR_NOT_CONNECTED (), NULL);
                if (enable_debug)
                        printf ("e_book_backend_ldap_get_contact_list_uids... ldap handler is NULL\n");
                return;
@@ -5790,10 +5775,7 @@ book_backend_ldap_authenticate_sync (EBackend *backend,
                        if (local_error == NULL) {
                                return E_SOURCE_AUTHENTICATION_ACCEPTED;
 
-                       } else if (g_error_matches (
-                               local_error, E_DATA_BOOK_ERROR,
-                               E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED)) {
-
+                       } else if (g_error_matches (local_error, E_CLIENT_ERROR, 
E_CLIENT_ERROR_AUTHENTICATION_FAILED)) {
                                g_clear_error (&local_error);
                                return E_SOURCE_AUTHENTICATION_REJECTED;
 
@@ -5840,10 +5822,7 @@ book_backend_ldap_authenticate_sync (EBackend *backend,
                        if (local_error == NULL) {
                                return E_SOURCE_AUTHENTICATION_ACCEPTED;
 
-                       } else if (g_error_matches (
-                               local_error, E_DATA_BOOK_ERROR,
-                               E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED)) {
-
+                       } else if (g_error_matches (local_error, E_CLIENT_ERROR, 
E_CLIENT_ERROR_AUTHENTICATION_FAILED)) {
                                g_clear_error (&local_error);
                                return E_SOURCE_AUTHENTICATION_REJECTED;
 
@@ -5899,8 +5878,7 @@ exit:
 
                case LDAP_NOT_SUPPORTED:
                        g_propagate_error (
-                               error, EDB_ERROR (
-                               UNSUPPORTED_AUTHENTICATION_METHOD));
+                               error, EC_ERROR (E_CLIENT_ERROR_UNSUPPORTED_AUTHENTICATION_METHOD));
                        result = E_SOURCE_AUTHENTICATION_ERROR;
                        break;
 
diff --git a/src/addressbook/libebook-contacts/e-book-contacts-utils.h 
b/src/addressbook/libebook-contacts/e-book-contacts-utils.h
index bea903c0d..62781d490 100644
--- a/src/addressbook/libebook-contacts/e-book-contacts-utils.h
+++ b/src/addressbook/libebook-contacts/e-book-contacts-utils.h
@@ -80,69 +80,6 @@
 
 G_BEGIN_DECLS
 
-/**
- * EDataBookStatus:
- * @E_DATA_BOOK_STATUS_SUCCESS: No error
- * @E_DATA_BOOK_STATUS_BUSY: Backend was busy
- * @E_DATA_BOOK_STATUS_REPOSITORY_OFFLINE: Offsite repository was not online
- * @E_DATA_BOOK_STATUS_PERMISSION_DENIED: Permission denied
- * @E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND: Contact referred to was not found
- * @E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS: Tried to add a contact which already exists
- * @E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED: Authentication failure
- * @E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED: Authentication required for this operation
- * @E_DATA_BOOK_STATUS_UNSUPPORTED_FIELD: An unsupported #EContactField was specified for a given operation
- * @E_DATA_BOOK_STATUS_UNSUPPORTED_AUTHENTICATION_METHOD: The authentication method is unsupported
- * @E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE: TLS was not available
- * @E_DATA_BOOK_STATUS_NO_SUCH_BOOK: Book did not exist
- * @E_DATA_BOOK_STATUS_BOOK_REMOVED: Book was removed
- * @E_DATA_BOOK_STATUS_OFFLINE_UNAVAILABLE: XXX Document me
- * @E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED: Exceeded limit of seach size
- * @E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED: Exceeded time limit for seach
- * @E_DATA_BOOK_STATUS_INVALID_QUERY: Given search espression is invalid
- * @E_DATA_BOOK_STATUS_QUERY_REFUSED: Given search espression was refused
- * @E_DATA_BOOK_STATUS_COULD_NOT_CANCEL: Unable to cancel an operation
- * @E_DATA_BOOK_STATUS_OTHER_ERROR: An other error occurred
- * @E_DATA_BOOK_STATUS_INVALID_SERVER_VERSION: Invalid server version
- * @E_DATA_BOOK_STATUS_NO_SPACE: Disk space insufficient
- * @E_DATA_BOOK_STATUS_INVALID_ARG: Invalid argument
- * @E_DATA_BOOK_STATUS_NOT_SUPPORTED: Unsupported operation
- * @E_DATA_BOOK_STATUS_NOT_OPENED: Tried to access a book which is not yet open
- * @E_DATA_BOOK_STATUS_OUT_OF_SYNC: Out of sync state
- *
- * Error codes for the #E_DATA_BOOK_ERROR domain, these are used
- * in the backend.
- *
- * Since: 3.6
- **/
-typedef enum {
-       E_DATA_BOOK_STATUS_SUCCESS,
-       E_DATA_BOOK_STATUS_BUSY,
-       E_DATA_BOOK_STATUS_REPOSITORY_OFFLINE,
-       E_DATA_BOOK_STATUS_PERMISSION_DENIED,
-       E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND,
-       E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS,
-       E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED,
-       E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED,
-       E_DATA_BOOK_STATUS_UNSUPPORTED_FIELD,
-       E_DATA_BOOK_STATUS_UNSUPPORTED_AUTHENTICATION_METHOD,
-       E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE,
-       E_DATA_BOOK_STATUS_NO_SUCH_BOOK,
-       E_DATA_BOOK_STATUS_BOOK_REMOVED,
-       E_DATA_BOOK_STATUS_OFFLINE_UNAVAILABLE,
-       E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED,
-       E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED,
-       E_DATA_BOOK_STATUS_INVALID_QUERY,
-       E_DATA_BOOK_STATUS_QUERY_REFUSED,
-       E_DATA_BOOK_STATUS_COULD_NOT_CANCEL,
-       E_DATA_BOOK_STATUS_OTHER_ERROR,
-       E_DATA_BOOK_STATUS_INVALID_SERVER_VERSION,
-       E_DATA_BOOK_STATUS_NO_SPACE,
-       E_DATA_BOOK_STATUS_INVALID_ARG,
-       E_DATA_BOOK_STATUS_NOT_SUPPORTED,
-       E_DATA_BOOK_STATUS_NOT_OPENED,
-       E_DATA_BOOK_STATUS_OUT_OF_SYNC
-} EDataBookStatus;
-
 /**
  * EBookClientError:
  * @E_BOOK_CLIENT_ERROR_NO_SUCH_BOOK: Requested book did not exist
diff --git a/src/addressbook/libebook/e-book-view.c b/src/addressbook/libebook/e-book-view.c
index 2a1e4beac..6a9719e54 100644
--- a/src/addressbook/libebook/e-book-view.c
+++ b/src/addressbook/libebook/e-book-view.c
@@ -123,25 +123,26 @@ book_view_complete_cb (EBookClientView *client_view,
 
        if (error == NULL) {
                status = E_BOOK_VIEW_STATUS_OK;
-       } else switch (error->code) {
-               case E_DATA_BOOK_STATUS_SUCCESS:
-                       status = E_BOOK_VIEW_STATUS_OK;
-                       break;
-               case E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED:
+       } else if (error->domain == E_CLIENT_ERROR) {
+               switch (error->code) {
+               case E_CLIENT_ERROR_SEARCH_TIME_LIMIT_EXCEEDED:
                        status = E_BOOK_VIEW_STATUS_TIME_LIMIT_EXCEEDED;
                        break;
-               case E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED:
+               case E_CLIENT_ERROR_SEARCH_SIZE_LIMIT_EXCEEDED:
                        status = E_BOOK_VIEW_STATUS_SIZE_LIMIT_EXCEEDED;
                        break;
-               case E_DATA_BOOK_STATUS_INVALID_QUERY:
+               case E_CLIENT_ERROR_INVALID_QUERY:
                        status = E_BOOK_VIEW_ERROR_INVALID_QUERY;
                        break;
-               case E_DATA_BOOK_STATUS_QUERY_REFUSED:
+               case E_CLIENT_ERROR_QUERY_REFUSED:
                        status = E_BOOK_VIEW_ERROR_QUERY_REFUSED;
                        break;
                default:
                        status = E_BOOK_VIEW_ERROR_OTHER_ERROR;
                        break;
+               }
+       } else {
+               status = E_BOOK_VIEW_ERROR_OTHER_ERROR;
        }
 
        message = (error != NULL) ? error->message : "";
diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c 
b/src/addressbook/libedata-book/e-book-meta-backend.c
index ffb1eafe3..79399d618 100644
--- a/src/addressbook/libedata-book/e-book-meta-backend.c
+++ b/src/addressbook/libedata-book/e-book-meta-backend.c
@@ -665,7 +665,7 @@ ebmb_upload_local_changes_sync (EBookMetaBackend *meta_backend,
                                change->uid, extra, change->object, opflags, cancellable, &local_error);
 
                        if (!success) {
-                               if (g_error_matches (local_error, E_DATA_BOOK_ERROR, 
E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND)) {
+                               if (g_error_matches (local_error, E_BOOK_CLIENT_ERROR, 
E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND)) {
                                        g_clear_error (&local_error);
                                        success = TRUE;
                                } else if (local_error) {
@@ -1057,7 +1057,7 @@ ebmb_load_contact_wrapper_sync (EBookMetaBackend *meta_backend,
        if (preloaded_object && *preloaded_object) {
                contact = e_contact_new_from_vcard_with_uid (preloaded_object, uid);
                if (!contact) {
-                       g_propagate_error (error, e_data_book_create_error_fmt 
(E_DATA_BOOK_STATUS_INVALID_ARG, _("Preloaded object for UID “%s” is invalid"), uid));
+                       g_propagate_error (error, e_client_error_create_fmt (E_CLIENT_ERROR_INVALID_ARG, 
_("Preloaded object for UID “%s” is invalid"), uid));
                        return FALSE;
                }
        } else if (!e_book_meta_backend_ensure_connected_sync (meta_backend, cancellable, error) ||
@@ -1065,7 +1065,7 @@ ebmb_load_contact_wrapper_sync (EBookMetaBackend *meta_backend,
                g_free (extra);
                return FALSE;
        } else if (!contact) {
-               g_propagate_error (error, e_data_book_create_error_fmt (E_DATA_BOOK_STATUS_INVALID_ARG, 
_("Received object for UID “%s” is invalid"), uid));
+               g_propagate_error (error, e_client_error_create_fmt (E_CLIENT_ERROR_INVALID_ARG, _("Received 
object for UID “%s” is invalid"), uid));
                g_free (extra);
                return FALSE;
        }
@@ -1309,7 +1309,7 @@ ebmb_create_contact_sync (EBookMetaBackend *meta_backend,
 
                new_uid = e_util_generate_uid ();
                if (!new_uid) {
-                       g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_INVALID_ARG, 
NULL));
+                       g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_INVALID_ARG, NULL));
                        return FALSE;
                }
 
@@ -1320,7 +1320,7 @@ ebmb_create_contact_sync (EBookMetaBackend *meta_backend,
        }
 
        if (e_cache_contains (E_CACHE (book_cache), uid, E_CACHE_EXCLUDE_DELETED)) {
-               g_propagate_error (error, e_data_book_create_error 
(E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS, NULL));
+               g_propagate_error (error, e_book_client_error_create 
(E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS, NULL));
                return FALSE;
        }
 
@@ -1389,7 +1389,7 @@ ebmb_create_contacts_sync (EBookBackendSync *book_backend,
        *out_contacts = NULL;
 
        if (!e_book_backend_get_writable (E_BOOK_BACKEND (book_backend))) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_PERMISSION_DENIED, 
NULL));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_PERMISSION_DENIED, NULL));
                return FALSE;
        }
 
@@ -1407,7 +1407,7 @@ ebmb_create_contacts_sync (EBookBackendSync *book_backend,
 
                contact = e_contact_new_from_vcard (vcards[ii]);
                if (!contact) {
-                       g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_INVALID_ARG, 
NULL));
+                       g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_INVALID_ARG, NULL));
                        success = FALSE;
                        break;
                }
@@ -1457,14 +1457,14 @@ ebmb_modify_contact_sync (EBookMetaBackend *meta_backend,
 
        uid = e_contact_get_const (contact, E_CONTACT_UID);
        if (!uid) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_INVALID_ARG, NULL));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_INVALID_ARG, NULL));
                return FALSE;
        }
 
        if (!e_book_cache_get_contact (book_cache, uid, FALSE, &existing_contact, cancellable, &local_error)) 
{
                if (g_error_matches (local_error, E_CACHE_ERROR, E_CACHE_ERROR_NOT_FOUND)) {
                        g_clear_error (&local_error);
-                       local_error = e_data_book_create_error (E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND, NULL);
+                       local_error = e_book_client_error_create (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND, 
NULL);
                }
 
                g_propagate_error (error, local_error);
@@ -1531,7 +1531,7 @@ ebmb_modify_contacts_sync (EBookBackendSync *book_backend,
        *out_contacts = NULL;
 
        if (!e_book_backend_get_writable (E_BOOK_BACKEND (book_backend))) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_PERMISSION_DENIED, 
NULL));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_PERMISSION_DENIED, NULL));
                return FALSE;
        }
 
@@ -1549,7 +1549,7 @@ ebmb_modify_contacts_sync (EBookBackendSync *book_backend,
 
                contact = e_contact_new_from_vcard (vcards[ii]);
                if (!contact) {
-                       g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_INVALID_ARG, 
NULL));
+                       g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_INVALID_ARG, NULL));
                        success = FALSE;
                        break;
                }
@@ -1600,7 +1600,7 @@ ebmb_remove_contact_sync (EBookMetaBackend *meta_backend,
        if (!e_book_cache_get_contact (book_cache, uid, FALSE, &existing_contact, cancellable, &local_error)) 
{
                if (g_error_matches (local_error, E_CACHE_ERROR, E_CACHE_ERROR_NOT_FOUND)) {
                        g_clear_error (&local_error);
-                       local_error = e_data_book_create_error (E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND, NULL);
+                       local_error = e_book_client_error_create (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND, 
NULL);
                }
 
                g_propagate_error (error, local_error);
@@ -1668,7 +1668,7 @@ ebmb_remove_contacts_sync (EBookBackendSync *book_backend,
        *out_removed_uids = NULL;
 
        if (!e_book_backend_get_writable (E_BOOK_BACKEND (book_backend))) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_PERMISSION_DENIED, 
NULL));
+               g_propagate_error (error, e_book_client_error_create (E_CLIENT_ERROR_PERMISSION_DENIED, 
NULL));
                return FALSE;
        }
 
@@ -1685,7 +1685,7 @@ ebmb_remove_contacts_sync (EBookBackendSync *book_backend,
                }
 
                if (!uid) {
-                       g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_INVALID_ARG, 
NULL));
+                       g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_INVALID_ARG, NULL));
                        success = FALSE;
                        break;
                }
@@ -1736,11 +1736,11 @@ ebmb_get_contact_sync (EBookBackendSync *book_backend,
                }
 
                if (!found)
-                       g_propagate_error (error, e_data_book_create_error 
(E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND, NULL));
+                       g_propagate_error (error, e_book_client_error_create 
(E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND, NULL));
 
                g_free (loaded_uid);
        } else if (local_error) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_OTHER_ERROR, 
local_error->message));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_OTHER_ERROR, 
local_error->message));
                g_clear_error (&local_error);
        }
 
@@ -2045,8 +2045,7 @@ ebmb_authenticate_sync (EBackend *backend,
        meta_backend = E_BOOK_META_BACKEND (backend);
 
        if (!e_backend_get_online (E_BACKEND (meta_backend))) {
-               g_set_error_literal (error, E_CLIENT_ERROR, E_CLIENT_ERROR_REPOSITORY_OFFLINE,
-                       e_client_error_to_string (E_CLIENT_ERROR_REPOSITORY_OFFLINE));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_REPOSITORY_OFFLINE, NULL));
 
                g_mutex_lock (&meta_backend->priv->wait_credentials_lock);
                meta_backend->priv->wait_credentials_stamp++;
@@ -2232,12 +2231,12 @@ ebmb_maybe_wait_for_credentials (EBookMetaBackend *meta_backend,
        if (!op_error || g_cancellable_is_cancelled (cancellable))
                return FALSE;
 
-       if (g_error_matches (op_error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE) &&
+       if (g_error_matches (op_error, E_CLIENT_ERROR, E_CLIENT_ERROR_TLS_NOT_AVAILABLE) &&
            e_book_meta_backend_get_ssl_error_details (meta_backend, &certificate_pem, &certificate_errors)) {
                reason = E_SOURCE_CREDENTIALS_REASON_SSL_FAILED;
-       } else if (g_error_matches (op_error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED)) 
{
+       } else if (g_error_matches (op_error, E_CLIENT_ERROR, E_CLIENT_ERROR_AUTHENTICATION_REQUIRED)) {
                reason = E_SOURCE_CREDENTIALS_REASON_REQUIRED;
-       } else if (g_error_matches (op_error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED)) {
+       } else if (g_error_matches (op_error, E_CLIENT_ERROR, E_CLIENT_ERROR_AUTHENTICATION_FAILED)) {
                reason = E_SOURCE_CREDENTIALS_REASON_REJECTED;
        }
 
@@ -3280,8 +3279,7 @@ e_book_meta_backend_ensure_connected_sync (EBookMetaBackend *meta_backend,
        g_return_val_if_fail (E_IS_BOOK_META_BACKEND (meta_backend), FALSE);
 
        if (!e_backend_get_online (E_BACKEND (meta_backend))) {
-               g_set_error_literal (error, E_CLIENT_ERROR, E_CLIENT_ERROR_REPOSITORY_OFFLINE,
-                       e_client_error_to_string (E_CLIENT_ERROR_REPOSITORY_OFFLINE));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_REPOSITORY_OFFLINE, NULL));
 
                return FALSE;
        }
@@ -3546,7 +3544,7 @@ e_book_meta_backend_process_changes_sync (EBookMetaBackend *meta_backend,
                success = ebmb_load_contact_wrapper_sync (meta_backend, book_cache, nfo->uid, nfo->object, 
nfo->extra, NULL, cancellable, &local_error);
 
                /* Do not stop on invalid objects, just notify about them later, and load as many as possible 
*/
-               if (!success && g_error_matches (local_error, E_DATA_BOOK_ERROR, 
E_DATA_BOOK_STATUS_INVALID_ARG)) {
+               if (!success && g_error_matches (local_error, E_CLIENT_ERROR, E_CLIENT_ERROR_INVALID_ARG)) {
                        if (!invalid_objects) {
                                invalid_objects = g_string_new (local_error->message);
                        } else {
@@ -3578,7 +3576,7 @@ e_book_meta_backend_process_changes_sync (EBookMetaBackend *meta_backend,
                success = ebmb_load_contact_wrapper_sync (meta_backend, book_cache, nfo->uid, nfo->object, 
nfo->extra, NULL, cancellable, &local_error);
 
                /* Do not stop on invalid objects, just notify about them later, and load as many as possible 
*/
-               if (!success && g_error_matches (local_error, E_DATA_BOOK_ERROR, 
E_DATA_BOOK_STATUS_INVALID_ARG)) {
+               if (!success && g_error_matches (local_error, E_CLIENT_ERROR, E_CLIENT_ERROR_INVALID_ARG)) {
                        if (!invalid_objects) {
                                invalid_objects = g_string_new (local_error->message);
                        } else {
@@ -4014,7 +4012,7 @@ e_book_meta_backend_save_contact_sync (EBookMetaBackend *meta_backend,
        g_return_val_if_fail (klass != NULL, FALSE);
 
        if (!klass->save_contact_sync) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_NOT_SUPPORTED, NULL));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_NOT_SUPPORTED, NULL));
                return FALSE;
        }
 
@@ -4093,7 +4091,7 @@ e_book_meta_backend_remove_contact_sync (EBookMetaBackend *meta_backend,
        g_return_val_if_fail (klass != NULL, FALSE);
 
        if (!klass->remove_contact_sync) {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_NOT_SUPPORTED, NULL));
+               g_propagate_error (error, e_client_error_create (E_CLIENT_ERROR_NOT_SUPPORTED, NULL));
                return FALSE;
        }
 
@@ -4247,7 +4245,7 @@ e_book_meta_backend_requires_reconnect (EBookMetaBackend *meta_backend)
  *
  * It is optional to implement this virtual method by the descendants.
  * It is used to receive SSL error details when any online operation
- * returns E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE error.
+ * returns E_CLIENT_ERROR, E_CLIENT_ERROR_TLS_NOT_AVAILABLE error.
  *
  * Returns: %TRUE, when the SSL error details had been available and
  *    the out parameters populated, %FALSE otherwise.
diff --git a/src/addressbook/libedata-book/e-data-book.c b/src/addressbook/libedata-book/e-data-book.c
index 06729a0d1..837e48c70 100644
--- a/src/addressbook/libedata-book/e-data-book.c
+++ b/src/addressbook/libedata-book/e-data-book.c
@@ -237,285 +237,9 @@ data_book_convert_to_client_error (GError *error)
        if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) {
                error->domain = E_BOOK_CLIENT_ERROR;
                error->code = E_BOOK_CLIENT_ERROR_NO_SUCH_BOOK;
-
-               return;
-       }
-
-       if (error->domain != E_DATA_BOOK_ERROR)
-               return;
-
-       switch (error->code) {
-               case E_DATA_BOOK_STATUS_REPOSITORY_OFFLINE:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_REPOSITORY_OFFLINE;
-                       break;
-
-               case E_DATA_BOOK_STATUS_PERMISSION_DENIED:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_PERMISSION_DENIED;
-                       break;
-
-               case E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND:
-                       error->domain = E_BOOK_CLIENT_ERROR;
-                       error->code = E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND;
-                       break;
-
-               case E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS:
-                       error->domain = E_BOOK_CLIENT_ERROR;
-                       error->code = E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS;
-                       break;
-
-               case E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_AUTHENTICATION_FAILED;
-                       break;
-
-               case E_DATA_BOOK_STATUS_UNSUPPORTED_AUTHENTICATION_METHOD:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_UNSUPPORTED_AUTHENTICATION_METHOD;
-                       break;
-
-               case E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_TLS_NOT_AVAILABLE;
-                       break;
-
-               case E_DATA_BOOK_STATUS_NO_SUCH_BOOK:
-                       error->domain = E_BOOK_CLIENT_ERROR;
-                       error->code = E_BOOK_CLIENT_ERROR_NO_SUCH_BOOK;
-                       break;
-
-               case E_DATA_BOOK_STATUS_BOOK_REMOVED:
-                       error->domain = E_BOOK_CLIENT_ERROR;
-                       error->code = E_BOOK_CLIENT_ERROR_NO_SUCH_SOURCE;
-                       break;
-
-               case E_DATA_BOOK_STATUS_OFFLINE_UNAVAILABLE:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_OFFLINE_UNAVAILABLE;
-                       break;
-
-               case E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_SEARCH_SIZE_LIMIT_EXCEEDED;
-                       break;
-
-               case E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_SEARCH_TIME_LIMIT_EXCEEDED;
-                       break;
-
-               case E_DATA_BOOK_STATUS_INVALID_QUERY:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_INVALID_QUERY;
-                       break;
-
-               case E_DATA_BOOK_STATUS_QUERY_REFUSED:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_QUERY_REFUSED;
-                       break;
-
-               case E_DATA_BOOK_STATUS_COULD_NOT_CANCEL:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_COULD_NOT_CANCEL;
-                       break;
-
-               case E_DATA_BOOK_STATUS_NO_SPACE:
-                       error->domain = E_BOOK_CLIENT_ERROR;
-                       error->code = E_BOOK_CLIENT_ERROR_NO_SPACE;
-                       break;
-
-               case E_DATA_BOOK_STATUS_INVALID_ARG:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_INVALID_ARG;
-                       break;
-
-               case E_DATA_BOOK_STATUS_NOT_SUPPORTED:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_NOT_SUPPORTED;
-                       break;
-
-               case E_DATA_BOOK_STATUS_NOT_OPENED:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_NOT_OPENED;
-                       break;
-
-               case E_DATA_BOOK_STATUS_OUT_OF_SYNC:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_OUT_OF_SYNC;
-                       break;
-
-               case E_DATA_BOOK_STATUS_UNSUPPORTED_FIELD:
-               case E_DATA_BOOK_STATUS_OTHER_ERROR:
-               case E_DATA_BOOK_STATUS_INVALID_SERVER_VERSION:
-                       error->domain = E_CLIENT_ERROR;
-                       error->code = E_CLIENT_ERROR_OTHER_ERROR;
-                       break;
-
-               default:
-                       g_warn_if_reached ();
        }
 }
 
-/**
- * e_data_book_status_to_string:
- * @status: an #EDataBookStatus
- *
- * Get localized human readable description of the given status code.
- *
- * Returns: Localized human readable description of the given status code
- *
- * Since: 2.32
- **/
-const gchar *
-e_data_book_status_to_string (EDataBookStatus status)
-{
-       gint i;
-       static struct _statuses {
-               EDataBookStatus status;
-               const gchar *msg;
-       } statuses[] = {
-               { E_DATA_BOOK_STATUS_SUCCESS,                           N_("Success") },
-               { E_DATA_BOOK_STATUS_BUSY,                              N_("Backend is busy") },
-               { E_DATA_BOOK_STATUS_REPOSITORY_OFFLINE,                N_("Repository offline") },
-               { E_DATA_BOOK_STATUS_PERMISSION_DENIED,                 N_("Permission denied") },
-               { E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND,                 N_("Contact not found") },
-               { E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS,          N_("Contact ID already exists") },
-               { E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED,             N_("Authentication Failed") },
-               { E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED,           N_("Authentication Required") },
-               { E_DATA_BOOK_STATUS_UNSUPPORTED_FIELD,                 N_("Unsupported field") },
-               { E_DATA_BOOK_STATUS_UNSUPPORTED_AUTHENTICATION_METHOD, N_("Unsupported authentication 
method") },
-               { E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE,                 N_("TLS not available") },
-               { E_DATA_BOOK_STATUS_NO_SUCH_BOOK,                      N_("Address book does not exist") },
-               { E_DATA_BOOK_STATUS_BOOK_REMOVED,                      N_("Book removed") },
-               { E_DATA_BOOK_STATUS_OFFLINE_UNAVAILABLE,               N_("Not available in offline mode") },
-               { E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED,        N_("Search size limit exceeded") },
-               { E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED,        N_("Search time limit exceeded") },
-               { E_DATA_BOOK_STATUS_INVALID_QUERY,                     N_("Invalid query") },
-               { E_DATA_BOOK_STATUS_QUERY_REFUSED,                     N_("Query refused") },
-               { E_DATA_BOOK_STATUS_COULD_NOT_CANCEL,                  N_("Could not cancel") },
-               /* { E_DATA_BOOK_STATUS_OTHER_ERROR,                    N_("Other error") }, */
-               { E_DATA_BOOK_STATUS_INVALID_SERVER_VERSION,            N_("Invalid server version") },
-               { E_DATA_BOOK_STATUS_NO_SPACE,                          N_("No space") },
-               { E_DATA_BOOK_STATUS_INVALID_ARG,                       N_("Invalid argument") },
-               /* Translators: The string for NOT_SUPPORTED error */
-               { E_DATA_BOOK_STATUS_NOT_SUPPORTED,                     N_("Not supported") },
-               { E_DATA_BOOK_STATUS_NOT_OPENED,                        N_("Backend is not opened yet") },
-               { E_DATA_BOOK_STATUS_OUT_OF_SYNC,                       N_("Object is out of sync") }
-       };
-
-       for (i = 0; i < G_N_ELEMENTS (statuses); i++) {
-               if (statuses[i].status == status)
-                       return _(statuses[i].msg);
-       }
-
-       return _("Other error");
-}
-
-/* Create the EDataBook error quark */
-GQuark
-e_data_book_error_quark (void)
-{
-       #define ERR_PREFIX "org.gnome.evolution.dataserver.AddressBook."
-
-       static const GDBusErrorEntry entries[] = {
-               { E_DATA_BOOK_STATUS_SUCCESS,                           ERR_PREFIX "Success" },
-               { E_DATA_BOOK_STATUS_BUSY,                              ERR_PREFIX "Busy" },
-               { E_DATA_BOOK_STATUS_REPOSITORY_OFFLINE,                ERR_PREFIX "RepositoryOffline" },
-               { E_DATA_BOOK_STATUS_PERMISSION_DENIED,                 ERR_PREFIX "PermissionDenied" },
-               { E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND,                 ERR_PREFIX "ContactNotFound" },
-               { E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS,          ERR_PREFIX "ContactIDAlreadyExists" },
-               { E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED,             ERR_PREFIX "AuthenticationFailed" },
-               { E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED,           ERR_PREFIX "AuthenticationRequired" },
-               { E_DATA_BOOK_STATUS_UNSUPPORTED_FIELD,                 ERR_PREFIX "UnsupportedField" },
-               { E_DATA_BOOK_STATUS_UNSUPPORTED_AUTHENTICATION_METHOD, ERR_PREFIX 
"UnsupportedAuthenticationMethod" },
-               { E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE,                 ERR_PREFIX "TLSNotAvailable" },
-               { E_DATA_BOOK_STATUS_NO_SUCH_BOOK,                      ERR_PREFIX "NoSuchBook" },
-               { E_DATA_BOOK_STATUS_BOOK_REMOVED,                      ERR_PREFIX "BookRemoved" },
-               { E_DATA_BOOK_STATUS_OFFLINE_UNAVAILABLE,               ERR_PREFIX "OfflineUnavailable" },
-               { E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED,        ERR_PREFIX "SearchSizeLimitExceeded" 
},
-               { E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED,        ERR_PREFIX "SearchTimeLimitExceeded" 
},
-               { E_DATA_BOOK_STATUS_INVALID_QUERY,                     ERR_PREFIX "InvalidQuery" },
-               { E_DATA_BOOK_STATUS_QUERY_REFUSED,                     ERR_PREFIX "QueryRefused" },
-               { E_DATA_BOOK_STATUS_COULD_NOT_CANCEL,                  ERR_PREFIX "CouldNotCancel" },
-               { E_DATA_BOOK_STATUS_OTHER_ERROR,                       ERR_PREFIX "OtherError" },
-               { E_DATA_BOOK_STATUS_INVALID_SERVER_VERSION,            ERR_PREFIX "InvalidServerVersion" },
-               { E_DATA_BOOK_STATUS_NO_SPACE,                          ERR_PREFIX "NoSpace" },
-               { E_DATA_BOOK_STATUS_INVALID_ARG,                       ERR_PREFIX "InvalidArg" },
-               { E_DATA_BOOK_STATUS_NOT_SUPPORTED,                     ERR_PREFIX "NotSupported" },
-               { E_DATA_BOOK_STATUS_NOT_OPENED,                        ERR_PREFIX "NotOpened" },
-               { E_DATA_BOOK_STATUS_OUT_OF_SYNC,                       ERR_PREFIX "OutOfSync" }
-       };
-
-       #undef ERR_PREFIX
-
-       static volatile gsize quark_volatile = 0;
-
-       g_dbus_error_register_error_domain ("e-data-book-error", &quark_volatile, entries, G_N_ELEMENTS 
(entries));
-
-       return (GQuark) quark_volatile;
-}
-
-/**
- * e_data_book_create_error:
- * @status: #EDataBookStatus code
- * @custom_msg: Custom message to use for the error. When NULL,
- *              then uses a default message based on the @status code.
- *
- * Returns: NULL, when the @status is E_DATA_BOOK_STATUS_SUCCESS,
- *          or a newly allocated GError, which should be freed
- *          with g_error_free() call.
- *
- * Since: 2.32
- **/
-GError *
-e_data_book_create_error (EDataBookStatus status,
-                          const gchar *custom_msg)
-{
-       if (status == E_DATA_BOOK_STATUS_SUCCESS)
-               return NULL;
-
-       return g_error_new_literal (E_DATA_BOOK_ERROR, status, custom_msg ? custom_msg : 
e_data_book_status_to_string (status));
-}
-
-/**
- * e_data_book_create_error_fmt:
- * @status: an #EDataBookStatus
- * @custom_msg_fmt: Custom message to use for the error. When NULL,
- *   then uses a default message based on the @status code.
- * @...: arguments for the @custom_msg_fmt
- *
- * Similar as e_data_book_create_error(), only here, instead of custom_msg,
- * is used a printf() format to create a custom_msg for the error.
- *
- * Returns: (transfer full): a new #GError populated with the values
- *   from the parameters.
- *
- * Since: 2.32
- **/
-GError *
-e_data_book_create_error_fmt (EDataBookStatus status,
-                              const gchar *custom_msg_fmt,
-                              ...)
-{
-       GError *error;
-       gchar *custom_msg;
-       va_list ap;
-
-       if (!custom_msg_fmt)
-               return e_data_book_create_error (status, NULL);
-
-       va_start (ap, custom_msg_fmt);
-       custom_msg = g_strdup_vprintf (custom_msg_fmt, ap);
-       va_end (ap);
-
-       error = e_data_book_create_error (status, custom_msg);
-
-       g_free (custom_msg);
-
-       return error;
-}
-
 /**
  * e_data_book_string_slist_to_comma_string:
  * @strings: (element-type utf8): a list of gchar *
diff --git a/src/addressbook/libedata-book/e-data-book.h b/src/addressbook/libedata-book/e-data-book.h
index f91cfa758..5603c7976 100644
--- a/src/addressbook/libedata-book/e-data-book.h
+++ b/src/addressbook/libedata-book/e-data-book.h
@@ -64,22 +64,6 @@ struct _EDataBookClass {
 
 GQuark e_data_book_error_quark (void);
 
-/**
- * E_DATA_BOOK_ERROR:
- *
- * Since: 2.30
- **/
-#define E_DATA_BOOK_ERROR e_data_book_error_quark ()
-
-GError *       e_data_book_create_error        (EDataBookStatus status,
-                                                const gchar *custom_msg);
-
-GError *       e_data_book_create_error_fmt    (EDataBookStatus status,
-                                                const gchar *custom_msg_fmt,
-                                                ...) G_GNUC_PRINTF (2, 3);
-
-const gchar *  e_data_book_status_to_string    (EDataBookStatus status);
-
 GType          e_data_book_get_type            (void) G_GNUC_CONST;
 EDataBook *    e_data_book_new                 (struct _EBookBackend *backend,
                                                 GDBusConnection *connection,
diff --git a/tests/libedata-book/test-book-meta-backend.c b/tests/libedata-book/test-book-meta-backend.c
index 6045ab8d1..e63ae845a 100644
--- a/tests/libedata-book/test-book-meta-backend.c
+++ b/tests/libedata-book/test-book-meta-backend.c
@@ -383,7 +383,7 @@ e_book_meta_backend_test_save_contact_sync (EBookMetaBackend *meta_backend,
 
        if (g_hash_table_contains (test_backend->contacts, uid)) {
                if (!overwrite_existing) {
-                       g_propagate_error (error, e_data_book_create_error 
(E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS, NULL));
+                       g_propagate_error (error, e_book_client_error_create 
(E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS, NULL));
                        return FALSE;
                }
 
@@ -427,7 +427,7 @@ e_book_meta_backend_test_load_contact_sync (EBookMetaBackend *meta_backend,
                *out_extra = g_strconcat ("extra for ", uid, NULL);
                return TRUE;
        } else {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND, 
NULL));
+               g_propagate_error (error, e_book_client_error_create (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND, 
NULL));
        }
 
        return FALSE;
@@ -463,7 +463,7 @@ e_book_meta_backend_test_remove_contact_sync (EBookMetaBackend *meta_backend,
                g_assert_cmpstr (expected_extra, ==, extra);
                g_free (expected_extra);
        } else {
-               g_propagate_error (error, e_data_book_create_error (E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND, 
NULL));
+               g_propagate_error (error, e_book_client_error_create (E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND, 
NULL));
        }
 
        return success;
@@ -864,7 +864,7 @@ test_create_contacts (EBookMetaBackend *meta_backend)
 
        success = backend_sync_class->create_contacts_sync (E_BOOK_BACKEND_SYNC (meta_backend),
                (const gchar * const *) vcards, E_BOOK_OPERATION_FLAG_NONE, &new_contacts, NULL, &error);
-       g_assert_error (error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS);
+       g_assert_error (error, E_BOOK_CLIENT_ERROR, E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS);
        g_assert (!success);
        g_assert_cmpint (g_slist_length (new_contacts), ==, 0);
        g_clear_error (&error);
@@ -902,7 +902,7 @@ test_create_contacts (EBookMetaBackend *meta_backend)
 
        success = backend_sync_class->create_contacts_sync (E_BOOK_BACKEND_SYNC (meta_backend),
                (const gchar * const *) vcards, E_BOOK_OPERATION_FLAG_NONE, &new_contacts, NULL, &error);
-       g_assert_error (error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS);
+       g_assert_error (error, E_BOOK_CLIENT_ERROR, E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS);
        g_assert (!success);
        g_assert_cmpint (g_slist_length (new_contacts), ==, 0);
        g_clear_error (&error);
@@ -1039,7 +1039,7 @@ test_modify_contacts (EBookMetaBackend *meta_backend)
 
        success = backend_sync_class->modify_contacts_sync (E_BOOK_BACKEND_SYNC (meta_backend),
                (const gchar * const *) vcards, E_BOOK_OPERATION_FLAG_NONE, &new_contacts, NULL, &error);
-       g_assert_error (error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND);
+       g_assert_error (error, E_BOOK_CLIENT_ERROR, E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND);
        g_assert (!success);
        g_assert_cmpint (g_slist_length (new_contacts), ==, 0);
        g_clear_error (&error);
@@ -1164,7 +1164,7 @@ test_remove_contacts (EBookMetaBackend *meta_backend)
 
        success = backend_sync_class->remove_contacts_sync (E_BOOK_BACKEND_SYNC (meta_backend),
                (const gchar * const *) uids, E_BOOK_OPERATION_FLAG_NONE, &removed_uids, NULL, &error);
-       g_assert_error (error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND);
+       g_assert_error (error, E_BOOK_CLIENT_ERROR, E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND);
        g_assert (!success);
        g_assert_null (removed_uids);
        g_clear_error (&error);
@@ -1264,7 +1264,7 @@ test_get_contact (EBookMetaBackend *meta_backend)
 
        /* Non-existing */
        contact = backend_sync_class->get_contact_sync (E_BOOK_BACKEND_SYNC (meta_backend), 
"unknown-contact", NULL, &error);
-       g_assert_error (error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND);
+       g_assert_error (error, E_BOOK_CLIENT_ERROR, E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND);
        g_assert_null (contact);
        g_clear_error (&error);
 
@@ -1283,7 +1283,7 @@ test_get_contact (EBookMetaBackend *meta_backend)
        e_book_meta_backend_test_reset_counters (test_backend);
 
        contact = backend_sync_class->get_contact_sync (E_BOOK_BACKEND_SYNC (meta_backend), "custom-5", NULL, 
&error);
-       g_assert_error (error, E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND);
+       g_assert_error (error, E_BOOK_CLIENT_ERROR, E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND);
        g_assert_null (contact);
        g_clear_error (&error);
        g_assert_cmpint (test_backend->connect_count, ==, 0);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]