https://www.attik.ai/contacts/6a0c58c408bc100679748727/mergewww.attik.ai/contacts/* to the tools app via host rewrite in attik-frontend/next.config.js (destination: "/tools/:path*").GET contact/:id, but only the merge page validates the response with strict Zod (ContactWithBusinessPopulatedSchema) and calls notFound() on any failure—including validation errors. The profile page intentionally skips Zod (legacy/import field shapes). Legacy or imported contacts can therefore load on the profile but 404 on merge.GET contact/<id> on merge load. If status is 200 but the page is still 404, the failure is schema validation, not a missing contact.attik-frontend/src/app/tools/contacts/[contact_id]/merge/page.tsx — fetches contact/${contact_id} with ContactWithBusinessPopulatedSchema; catch → notFound() (Next.js 404).attik-frontend/src/app/tools/contacts/[contact_id]/page.tsx — same API call without Zod (comment notes skipped validation for volume metrics / legacy values).attik-frontend/src/util/types/serverTypeCollection/contact.ts — strict fields that may fail on older rows include tags (required array), preferredContactMethod, emailStatus, smsStatus, active, createdAt, updatedAt, ccEmails refine, populated _contactBusinessId.ContactDetailsSection.tsx (Merge button, disabled when isDeleted), ContactActions.tsx (list merge action).merge/error.tsx (only for thrown errors in client tree, not server notFound()).notFound().attik-backend/src/routes/contact.ts — GET /:id via getSingleItem returns contact by Mongo id (404 only if doc missing); does not filter isDeleted on GET. Merge submit is POST /:id/merge (404 for missing secondary; 400 for deleted/already-merged)—out of scope for the page-load 404 unless investigation shows API 404 on GET for these ids.POST /:id/merge).isDeleted)—Merge is already disabled on the profile for those.attik-frontend/src/app/tools/contacts/[contact_id]/merge/page.tsxattik-frontend/src/app/tools/contacts/[contact_id]/page.tsxattik-frontend/src/util/types/serverTypeCollection/contact.tsattik-backend/src/routes/contact.ts (GET /:id, POST /:id/merge)attik-backend/tests/integration/contact.merge.test.ts (merge API behavior)Please authenticate to join the conversation.
Completed
Main App
About 2 months ago
Linear
Get notified by email when there are changes.
Completed
Main App
About 2 months ago
Linear
Get notified by email when there are changes.