← Dev log
JDL (client project)·data integrity·2026-10-06

A booking time that crashed in one timezone

Any booking sent with a +03:00 time returned a 500, because the code stored the request's own UTC offset.

It could not have worked

A race, an ordering, one column holding two things. The shape ruled it out before the code ran.

A booking method stored the UTC offset of the request it came from, so any booking sent with a +03:00 time came back as a 500. It now stores UTC. A day-closing job compared bookings against a +03:00 cutoff and failed the same way. Both turned up in the new tests, not by hand.

A later flaky test had the same root. A snapshot test booked "now plus three hours" and expected it in today's list, which stops being true after 21:00 local time. It now lists the day it booked. The rule: keep the offset out of storage and out of comparisons, and never write a test whose answer depends on what time it runs.