--- a/daemon/dbus/gkd-secret-service.c
+++ b/daemon/dbus/gkd-secret-service.c
@@ -1249,7 +1249,8 @@
 	g_return_val_if_fail (caller, NULL);
 
 	client = g_hash_table_lookup (self->clients, caller);
-	g_return_val_if_fail (client, NULL);
+	if (client == NULL)
+		return NULL;
 
 	/* Open a new session if necessary */
 	if (!client->pkcs11_session) {
--- a/daemon/dbus/gkd-secret-objects.c
+++ b/daemon/dbus/gkd-secret-objects.c
@@ -431,7 +431,14 @@
 
 	/* The session we're using to access the object */
 	session = gkd_secret_service_get_pkcs11_session (self->service, sender);
-	g_return_val_if_fail (session, FALSE);
+	if (session == NULL) {
+		g_free (c_ident);
+		g_free (i_ident);
+		g_set_error_literal (error_out, G_DBUS_ERROR,
+		                     G_DBUS_ERROR_FAILED,
+		                     "Secret Service client session is unavailable");
+		return NULL;
+	}
 
 	if (i_ident) {
 		gck_builder_add_ulong (&builder, CKA_CLASS, CKO_SECRET_KEY);
