diff --git a/backend/__tests__/fp-submissions-cleanup.property.test.js b/backend/__tests__/fp-submissions-cleanup.property.test.js
index 12cb164..6027ff3 100644
--- a/backend/__tests__/fp-submissions-cleanup.property.test.js
+++ b/backend/__tests__/fp-submissions-cleanup.property.test.js
@@ -31,7 +31,9 @@ const lifecycleStatusArb = fc.constantFrom('submitted', 'approved', 'rejected',
const dismissedAtArb = fc.oneof(
fc.constant(null),
- fc.date({ min: new Date('2020-01-01'), max: new Date('2030-12-31') }).map(d => d.toISOString())
+ fc.date({ min: new Date('2020-01-01T00:00:00.000Z'), max: new Date('2030-12-31T00:00:00.000Z') })
+ .filter(d => !isNaN(d.getTime()))
+ .map(d => d.toISOString())
);
const submissionArb = fc.record({
diff --git a/frontend/src/components/pages/ReportingPage.js b/frontend/src/components/pages/ReportingPage.js
index 463db18..c0d7755 100644
--- a/frontend/src/components/pages/ReportingPage.js
+++ b/frontend/src/components/pages/ReportingPage.js
@@ -4087,11 +4087,16 @@ function FpEditModal({ open, onClose, submission, queueItems, onSuccess }) {
{/* Ivanti reviewer notes (rework/approval/previous state feedback) */}
{(() => {
+ const safeText = (val) => {
+ if (!val) return null;
+ if (typeof val === 'string') return val;
+ try { return JSON.stringify(val); } catch { return String(val); }
+ };
const notes = [
- submission.ivanti_rework_note && { label: 'Rework Note', text: submission.ivanti_rework_note },
- submission.ivanti_approval_note && { label: 'Approval Note', text: submission.ivanti_approval_note },
- submission.ivanti_current_state_notes && { label: 'Current State Notes', text: submission.ivanti_current_state_notes },
- submission.ivanti_previous_state_notes && { label: 'Previous State Notes', text: submission.ivanti_previous_state_notes },
+ safeText(submission.ivanti_rework_note) && { label: 'Rework Note', text: safeText(submission.ivanti_rework_note) },
+ safeText(submission.ivanti_approval_note) && { label: 'Approval Note', text: safeText(submission.ivanti_approval_note) },
+ safeText(submission.ivanti_current_state_notes) && { label: 'Current State Notes', text: safeText(submission.ivanti_current_state_notes) },
+ safeText(submission.ivanti_previous_state_notes) && { label: 'Previous State Notes', text: safeText(submission.ivanti_previous_state_notes) },
].filter(Boolean);
return notes.length > 0 ? notes.map((note, idx) => (