diff --git a/src/Window.cpp b/src/Window.cpp
index bab07e45437a9c754e06aee6957957ab679cc27e..b59f8681e6a5d3797401194ba1adf3646d3184c2 100644
--- a/src/Window.cpp
+++ b/src/Window.cpp
@@ -3,21 +3,35 @@
 #include <format>
 #include <stdexcept>
 
-[[nodiscard]]
-static auto
-    create_window(const uint16_t width, const uint16_t height, const std::string& title)
-        -> GLFWwindow*
+static auto init_glfw() -> void
 {
-    if (const auto error_code{ glfwInit() }; error_code != GLFW_TRUE) {
-        throw std::runtime_error{
-            std::format("glfwInit failed with error code {}", error_code)
-        };
+    if (const int success{ glfwInit() }; success != GLFW_TRUE) {
+        const char* description{};
+        const int   error_code{ glfwGetError(&description) };
+
+        if (description == nullptr) {
+            throw std::runtime_error{
+                std::format("glfwInit failed with error code {}", error_code)
+            };
+        }
+        throw std::runtime_error{ std::format(
+            "glfwInit failed with error code {} - '{}'", error_code, description
+        ) };
     }
-    if (const auto result{ std::atexit(glfwTerminate) }; result != 0) {
+
+    if (const int result{ std::atexit(glfwTerminate) }; result != 0) {
         throw std::runtime_error{
-            std::format("std::atexit(glfwTerminate) failed with error code {}", result)
+            std::format("std::atexit failed with error code {}", result)
         };
     }
+}
+
+[[nodiscard]]
+static auto
+    create_window(const uint16_t width, const uint16_t height, const std::string& title)
+        -> GLFWwindow*
+{
+    init_glfw();
 
     glfwDefaultWindowHints();
     glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
@@ -34,9 +48,7 @@ static auto
 auto Window::vulkan_instance_extensions() -> std::span<const char* const>
 {
     static const std::vector s_extension_names{ []() -> std::vector<const char*> {
-        if (glfwInit() != GLFW_TRUE) {
-            return {};
-        }
+        init_glfw();
 
         uint32_t             count{};
         const char**         glfw_extension_names{ glfwGetRequiredInstanceExtensions(&count) };