diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70b746026faf2c5b0ad4153ac1511d485d9fa92a..b9304f01edc68c2a8dc2701888eb2a783b925711 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -362,7 +362,7 @@ if(USE_BUNDLED_MTXCLIENT)
 	FetchContent_Declare(
 		MatrixClient
 		GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
-		GIT_TAG        v0.5.1
+		GIT_TAG        5d2f055ea9403770039ddf66b1900f890cd5cde7
 		)
 	set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
 	set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")
diff --git a/io.github.NhekoReborn.Nheko.yaml b/io.github.NhekoReborn.Nheko.yaml
index c00385bcf17c5dae51a924f5eb897df828f10fc9..d8ea05dc8546823edc608ba1b0d9bc910b9580bc 100644
--- a/io.github.NhekoReborn.Nheko.yaml
+++ b/io.github.NhekoReborn.Nheko.yaml
@@ -148,8 +148,7 @@ modules:
     buildsystem: cmake-ninja
     name: mtxclient
     sources:
-      - commit: b19f1dc7e422f1bb217f02487567fc09e25e7d2b
-        tag: v0.5.1
+      - commit: 5d2f055ea9403770039ddf66b1900f890cd5cde7
         type: git
         url: https://github.com/Nheko-Reborn/mtxclient.git
   - config-opts:
diff --git a/src/LoginPage.cpp b/src/LoginPage.cpp
index 0108a9f46c3068832dee878e699060c65fe00921..c914d66fec86cc2edd1c179e1d3a754ebdfe7193 100644
--- a/src/LoginPage.cpp
+++ b/src/LoginPage.cpp
@@ -420,8 +420,11 @@ LoginPage::onLoginButtonClicked(LoginMethod loginMethod)
                                                           : deviceName_->text().toStdString(),
                   [this](const mtx::responses::Login &res, mtx::http::RequestErr err) {
                           if (err) {
-                                  showErrorMessage(error_label_,
-                                                   QString::fromStdString(err->matrix_error.error));
+                                  auto error = err->matrix_error.error;
+                                  if (error.empty())
+                                          error = err->parse_error;
+
+                                  showErrorMessage(error_label_, QString::fromStdString(error));
                                   emit errorOccurred();
                                   return;
                           }