diff --git a/src/backend.cpp b/src/backend.cpp
index bfd9830c7cefca360f57aaad3a0d18e11fcc4edc..63ffd2678686a92731f5751548acb3f01ebc6727 100644
--- a/src/backend.cpp
+++ b/src/backend.cpp
@@ -408,22 +408,10 @@ void Backend::runUserProject(const QString &projectName)
 
     qDebug() << "Running user project:" << projectName;
 
-    const QString userHash = Backend::userHash();
-
-    qDebug("Checking if project is cached. Getting list of available projects...");
-    const std::optional<QJsonArray> projectList = m_serviceConnector.fetchUserProjectList(userHash);
-
-    if (projectList == std::nullopt) {
-        qCritical() << "Could not fetch up-to-date project information. Please check your internet "
-                       "connection and try again.";
-        emit popupClose();
-        return;
-    }
-
     QString projectLastModified;
     QString projectId;
     QJsonObject projectInfo;
-    for (auto project : projectList.value()) {
+    for (const auto &project : m_projectList) {
         if (projectName == project.toObject().value("appName").toString()) {
             projectInfo = project.toObject();
             break;
@@ -436,7 +424,7 @@ void Backend::runUserProject(const QString &projectName)
         qDebug("Project is not cached. Downloading...");
         updatePopup("Project is not cached. Downloading...", false);
         const std::optional<QByteArray> projectData
-            = m_serviceConnector.fetchUserProject(userHash, projectName);
+            = m_serviceConnector.fetchUserProject(userHash(), projectName);
 
         if (projectData == std::nullopt) {
             qCritical()