Index: ChapterX.API/Program.cs
===================================================================
--- ChapterX.API/Program.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ ChapterX.API/Program.cs	(revision b373fea3e2c9d404606002f8e7ba265a82d68187)
@@ -7,4 +7,8 @@
 
 var builder = WebApplication.CreateBuilder(args);
+
+var jwtKey = builder.Configuration["Jwt:Key"];
+if (string.IsNullOrWhiteSpace(jwtKey) || jwtKey.StartsWith("change-this"))
+    throw new InvalidOperationException("Jwt:Key is not configured. Set it via environment variable DOTNET_Jwt__Key before starting the application.");
 
 builder.Services.AddCors(options =>
@@ -85,4 +89,6 @@
     ctx.Response.ContentType = "application/json";
 
+    var logger = ctx.RequestServices.GetRequiredService<ILogger<Program>>();
+
     string message;
     int status;
@@ -107,10 +113,14 @@
             message = "A user with this email or username already exists.";
         else
-            message = "Database error: " + inner;
+        {
+            logger.LogError(dbEx, "Unhandled database error");
+            message = "A database error occurred. Please try again.";
+        }
     }
     else
     {
+        logger.LogError(ex, "Unhandled exception");
         status = 500;
-        message = ex?.Message ?? "An error occurred.";
+        message = "An unexpected error occurred.";
     }
 
