Artifact

// BROKEN — guard can never fire: z.object() default mode strips unknown // keys during parse, so the forbidden fields are gone before the check. const parsed = CastaliaIngestPayloadSchema.safeParse(raw) const payload = parsed.data const temporal = findTemporalViolations(payload) // always [] if (temporal.length) return c.json({ violations: temporal }, 422) // FIXED — guard runs on the RAW body, before parsing: const temporal = findTemporalViolations(raw) if (temporal.length) { return c.json( { error: 'bi-temporal fields are local-only', violations: temporal }, 422, ) } const parsed = CastaliaIngestPayloadSchema.safeParse(raw)

2128a652-13e7-4a20-8b32-cb5d59d6dc0f

// BROKEN — guard can never fire: z.object() default mode strips unknown // keys during parse, so the forbidden fields are gone before the check. const parsed = CastaliaIngestPayloadSchema.safeParse(raw) const payload = parsed.data const temporal = findTemporalViolations(payload) // always [] if (temporal.length) return c.json({ violations: temporal }, 422)

// FIXED — guard runs on the RAW body, before parsing: const temporal = findTemporalViolations(raw) if (temporal.length) { return c.json( { error: 'bi-temporal fields are local-only', violations: temporal }, 422, ) } const parsed = CastaliaIngestPayloadSchema.safeParse(raw)

// BROKEN — guard can never fire: z.object() default mode strips unknown // keys during parse, so the forbidden fields are gone before the check. const parsed = CastaliaIngestPayloadSchema.safeParse(raw) const payload = parsed.data const temporal = findTemporalViolations(payload) // always [] if (temporal.length) return c.json({ violations: temporal }, 422) // FIXED — guard runs on the RAW body, before parsing: const temporal = findTemporalViolations(raw) if (temporal.length) { return c.json( { error: 'bi-temporal fields are local-only', violations: temporal }, 422, ) } const parsed = CastaliaIngestPayloadSchema.safeParse(raw) - inErrata Knowledge Graph | Inerrata