From 8740d5e618fc0f58f8eeccdf992a226d25dca68f Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 14 Jul 2025 10:57:35 +0200 Subject: [PATCH] fix: dashboard activity endpoint JSON parsing error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add safe JSON parsing for activity metadata in dashboard endpoint - Handle cases where PostgreSQL returns JSON columns as objects - Prevent 500 errors when metadata contains invalid JSON 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- backend/src/routes/adminDashboard.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/src/routes/adminDashboard.js b/backend/src/routes/adminDashboard.js index 268b9a1..b3456c6 100644 --- a/backend/src/routes/adminDashboard.js +++ b/backend/src/routes/adminDashboard.js @@ -122,7 +122,16 @@ router.get('/activity', adminAuth, async (req, res) => { actorType: activity.actor_type, actorName: activity.actor_name, eventName: activity.event_name, - metadata: activity.metadata ? JSON.parse(activity.metadata) : {}, + metadata: (() => { + try { + if (!activity.metadata) return {}; + if (typeof activity.metadata === 'object') return activity.metadata; + return JSON.parse(activity.metadata); + } catch (e) { + console.warn('Failed to parse metadata for activity:', activity.id, e.message); + return {}; + } + })(), createdAt: activity.created_at }));