diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 6b3614fc556c3fbc41e2e4ad8d7b168a888d7edd..ddca1b6708fcca426cb2c489e2a3e9498a6f8e6e 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -351,7 +351,8 @@ void QQuickWebEngineViewPrivate::allowCertificateError(const QSharedPointer<Cert
     Q_Q(QQuickWebEngineView);
 
     QQuickWebEngineCertificateError *quickController = new QQuickWebEngineCertificateError(errorController);
-    QQmlEngine::setObjectOwnership(quickController, QQmlEngine::JavaScriptOwnership);
+    // mark the object for gc by creating temporary jsvalue
+    qmlEngine(q)->newQObject(quickController);
     Q_EMIT q->certificateError(quickController);
     if (!quickController->deferred() && !quickController->answered())
         quickController->rejectCertificate();