From 24b7d6774598345e60b00034b1084a31b268b7a2 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 19 Aug 2025 11:23:54 +0000 Subject: [PATCH] Improve task update logging and handle date formatting errors Refine error logging in task update routes and storage, and adjust date handling to correctly process null or empty date strings, preventing runtime errors. Replit-Commit-Author: Agent Replit-Commit-Session-Id: cc2d271b-82f0-4d6a-9302-a0b067ffb429 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/cc2d271b-82f0-4d6a-9302-a0b067ffb429/mibRh7v --- ...-updateTas-1755602534376_1755602534377.txt | 200 ++++++++++++++++++ ...-499A-B2F3-D3E7C5640F3A}_1755602554644.png | Bin 0 -> 57676 bytes server/routes.ts | 16 +- server/storage.ts | 8 +- 4 files changed, 218 insertions(+), 6 deletions(-) create mode 100644 attached_assets/Pasted--startDate-2025-08-20-dueDate-2025-08-21-DatabaseStorage-updateTas-1755602534376_1755602534377.txt create mode 100644 attached_assets/{B40F25BC-E33A-499A-B2F3-D3E7C5640F3A}_1755602554644.png diff --git a/attached_assets/Pasted--startDate-2025-08-20-dueDate-2025-08-21-DatabaseStorage-updateTas-1755602534376_1755602534377.txt b/attached_assets/Pasted--startDate-2025-08-20-dueDate-2025-08-21-DatabaseStorage-updateTas-1755602534376_1755602534377.txt new file mode 100644 index 0000000..d0720e5 --- /dev/null +++ b/attached_assets/Pasted--startDate-2025-08-20-dueDate-2025-08-21-DatabaseStorage-updateTas-1755602534376_1755602534377.txt @@ -0,0 +1,200 @@ + + + startDate: '2025-08-20', + + dueDate: '2025-08-21' + +} + +๐Ÿ’พ DatabaseStorage.updateTask - Input: { + + taskId: 99, + + taskData: { + + title: 'test', + + description: 'test', + + priority: 'medium', + + status: 'pending', + + assignedTo: 'test', + + startDate: '2025-08-20', + + dueDate: '2025-08-21' + + }, + + dueDate: '2025-08-21', + + dueDateType: 'string', + + dueDateISO: '2025-08-21' + +} + +๐Ÿงน Cleaned data for database update: { + + title: 'test', + + description: 'test', + + priority: 'medium', + + status: 'pending', + + assignedTo: 'test', + + startDate: '2025-08-20', + + dueDate: '2025-08-21', + + updatedAt: 2025-08-19T11:21:56.027Z + +} + +โŒ DatabaseStorage.updateTask - Database Error: { + + taskId: 99, + + error: 'value.toISOString is not a function', + + cleanData: { + + title: 'test', + + description: 'test', + + priority: 'medium', + + status: 'pending', + + assignedTo: 'test', + + startDate: '2025-08-20', + + dueDate: '2025-08-21', + + updatedAt: 2025-08-19T11:21:56.027Z + + } + +} + +file:///app/dist/index.js:6700 + + taskId: id, + + ^ + +ReferenceError: id is not defined + + at file:///app/dist/index.js:6700:17 + + at process.processTicksAndRejections (node:internal/process/task_queues:95:5) + +Node.js v20.19.4 + +Applying DLC migration... + +NOTICE: column "stock_epuise" of relation "dlc_products" already exists, skipping + +NOTICE: column "stock_epuise_by" of relation "dlc_products" already exists, skipping + +NOTICE: column "stock_epuise_at" of relation "dlc_products" already exists, skipping + +NOTICE: relation "idx_dlc_products_stock_epuise" already exists, skipping + +ALTER TABLE + + CREATE INDEX + +๐Ÿ”— Database initialization: { + + NODE_ENV: 'production', + + isProduction: true, + + hasDbUrl: true, + + dbHost: 'logiflow-db' + +} + +๐Ÿณ PRODUCTION: Using standard PostgreSQL + +โœ… PostgreSQL connection test successful + +๐Ÿ”— Database initialization: { + + NODE_ENV: 'production', + + isProduction: true, + + hasDbUrl: true, + + dbHost: 'logiflow-db:5432' + +} + +โœ… Using DatabaseStorage (production PostgreSQL) + +โฐ Automatic backup scheduled for 2:00 AM daily (native timer) + +๐Ÿ” Using development storage and authentication + +๐Ÿณ PRODUCTION: Starting LogiFlow application + +๐Ÿณ Environment: { NODE_ENV: 'production', DATABASE_URL: 'Present', PORT: '3000' } + +๐Ÿ’พ [PRODUCTION] Backup service initialized for automatic daily backups + +๐Ÿ”ง Registering all production routes... + +๐Ÿ”„ Running automatic production migrations... + +๐Ÿ”„ MIGRATION: Starting SAV production migrations... + +๐Ÿ”„ MIGRATION: Database URL configured: postgresql://logiflow_admin:Lo... + +โœ… MIGRATION: Connected to PostgreSQL database + +๐Ÿ”„ MIGRATION: Checking if priority column exists... + +๐Ÿ”„ MIGRATION: Priority column check result: 1 + +โœ… MIGRATION: Priority column already exists, skipping migration + +๐Ÿ”Œ MIGRATION: Database connection closed + +๐ŸŒค๏ธ [PRODUCTION] Initializing weather system... + +๐ŸŒค๏ธ [AUTO-CONFIG] Initializing weather configuration... + +โœ… [AUTO-CONFIG] Weather settings already configured and active + +โœ… [PRODUCTION] Weather system initialized + +๐ŸŒ Environment detected: production + +๐Ÿ”ง Using memory session store for development + +Warning: connect.session() MemoryStore is not + +designed for a production environment, as it will leak + +memory, and will not scale past a single process. + +โœ… All routes registered successfully for production + +๐Ÿณ Serving static files from: /app/dist/public + +๐Ÿณ PRODUCTION: LogiFlow serving on port 3000 + +HEAD /api/health 200 in 8ms + + + \ No newline at end of file diff --git a/attached_assets/{B40F25BC-E33A-499A-B2F3-D3E7C5640F3A}_1755602554644.png b/attached_assets/{B40F25BC-E33A-499A-B2F3-D3E7C5640F3A}_1755602554644.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e0b5c05fd6e43e6e01aa0b324ebd8d45e66fde GIT binary patch literal 57676 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 { }); res.json(updatedTask); } catch (error) { - console.error("โŒ Error updating task:", { - taskId: id, + const taskId = parseInt(req.params.id); + console.error("โŒ Error updating task in route:", { + taskId: taskId, error: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined, - reqBody: req.body + reqBody: req.body, + cleanData: req.body ? { + title: req.body.title, + description: req.body.description, + priority: req.body.priority, + status: req.body.status, + assignedTo: req.body.assignedTo, + startDate: req.body.startDate, + dueDate: req.body.dueDate, + } : null }); res.status(500).json({ message: "Failed to update task", diff --git a/server/storage.ts b/server/storage.ts index 7d59452..ec00906 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -1725,10 +1725,10 @@ export class DatabaseStorage implements IStorage { if (taskData.status !== undefined) cleanData.status = taskData.status; if (taskData.assignedTo !== undefined) cleanData.assignedTo = taskData.assignedTo; if (taskData.startDate !== undefined) { - cleanData.startDate = taskData.startDate === '' ? null : taskData.startDate; + cleanData.startDate = taskData.startDate === '' || taskData.startDate === null ? null : taskData.startDate; } if (taskData.dueDate !== undefined) { - cleanData.dueDate = taskData.dueDate === '' ? null : taskData.dueDate; + cleanData.dueDate = taskData.dueDate === '' || taskData.dueDate === null ? null : taskData.dueDate; } cleanData.updatedAt = new Date(); @@ -1754,7 +1754,9 @@ export class DatabaseStorage implements IStorage { console.error('โŒ DatabaseStorage.updateTask - Database Error:', { taskId: id, error: error instanceof Error ? error.message : String(error), - cleanData + stack: error instanceof Error ? error.stack : undefined, + cleanData, + originalTaskData: taskData }); throw new Error(`Failed to update task in database: ${error instanceof Error ? error.message : String(error)}`); }