diff --git a/src/handlers/xdgurl.cpp b/src/handlers/xdgurl.cpp
index bf56d0fdc2fe2c92c323f139eb895abd1acf0938..b823f019c9a05bed0f43fbe12454446b4540505b 100644
--- a/src/handlers/xdgurl.cpp
+++ b/src/handlers/xdgurl.cpp
@@ -276,9 +276,14 @@ void XdgUrl::process()
      * is the same process of the xdg scheme currently.
      */
 
-    if (isValid()) {
-        _network->get(QUrl(_metadata["url"].toString()));
+    if (!isValid()) {
+        QJsonObject result;
+        result["error"] = QString("validation_error");
+        emit finished(Utility::Json::convertObjToStr(result));
+        return;
     }
+
+    _network->get(QUrl(_metadata["url"].toString()));
 }
 
 } // namespace Handlers