diff --git a/src/base/commands.c b/src/base/commands.c
index 5bbd9cfaefa964ad9371e89b4799696eea05b968..d952cfcba1b50f17374aa53e4484355a5a5693b2 100644
--- a/src/base/commands.c
+++ b/src/base/commands.c
@@ -730,31 +730,39 @@ bool
 command_find(struct lkt_state *srv, size_t c, char *args[LKT_MESSAGE_ARGS_MAX], long continuation,
              database_search_init_func init)
 {
-    long count;
-    struct lkt_uri *find_uri = lkt_uri_new();
-    struct lkt_search *search =
-        database_search_new(srv, c, (int)continuation, FUNCTION_POINTER(lkt_callback_send_row_v2));
-    database_search_set_uri(search, find_uri);
-    database_search_set_name(search, args[0]);
-
     RETURN_UNLESS(args[0], "Invalid argument", false);
 
     /* Just an id */
+    long count;
     if (!args[1] && (count = strtol(args[0], NULL, 0)))
         return command_findid(srv, c, args[0]);
 
     /* With an URI */
+    struct lkt_uri *find_uri = lkt_uri_new();
+    struct lkt_search *search =
+        database_search_new(srv, c, (int)continuation, FUNCTION_POINTER(lkt_callback_send_row_v2));
+    database_search_set_name(search, args[0]);
+    database_search_set_uri(search, find_uri);
+
     if (!lkt_uri_from(find_uri, args)) {
         /* Try from idx 1, in case of playlust searches */
         LOG_DEBUG("COMMAND",
                   "URI may not starts at idx 0, may be because of "
                   "playlist search. At idx 0, value was '%s'",
                   args[0]);
-        RETURN_UNLESS(lkt_uri_from(find_uri, &args[1]), "Failed to create the uri", false);
+        unless (lkt_uri_from(find_uri, &args[1])) {
+            lkt_uri_free(find_uri);
+            LOG_ERROR("COMMAND", "Failed to create the uri");
+            return false;
+        }
+    }
+
+    unless (init(srv->db, search)) {
+        LOG_ERROR("COMMAND", "Failed to init the search structure");
+        lkt_uri_free(find_uri);
+        return false;
     }
 
-    database_search_set_uri(search, find_uri);
-    RETURN_UNLESS(init(srv->db, search), "Failed to init search", false);
     const bool ret = iter_search__(search);
     lkt_uri_free(find_uri);
     return ret;