Hey Sam! I’ve got a pretty good example since I’ll have to write up a patch for this in my next sprint.
In my project, I’ve got a system that creates a bunch of historical records at the end of each month. The historical records have a date field to allow users to view those records on a month-by-month basis. Since a search for these things is going to require a date and a time, we set all of the times to midnight so that all the developers on my team can easily write search constraints. For June, all of these records will have their date field populated by 06/01/2022 12:00:00 am.
Before this breaking change, my team knew that the backend workflows are going to default these times to UTC, so when I’m building a filter on the front end, I have to make sure that the search constraint I write is for midnight UTC. If I were to just plug in 06/01/2022 12:00:00 am for the constraint, none of June’s records would show up since I do not live in the UTC timezone. Since I’m in mountain time, I actually have to write the constraint as 05/31/2022 06:00:00 PM which is actually 06/01/2022 12:00:00 am UTC. (If all of our development team lived in one timezone, we would not have to do it like this, instead, we could write the constraint and just select the timezone we all live in. Technically we could also just pick one and we picked UTC.)
Now here’s why this is a breaking change. In my workflows that create these monthly records, we have the date field set to midnight UTC, but I simply wrote it as 05/31/2022 06:00:00 PM, the same as all of our search constraints on the front end. (Once again this is done to represent 06/01/2022 12:00:00 AM in UTC.)
Now, for most of my record creation process, I do not believe this will break anything since the whole process starts and ends on the backend. However, we do allow users to hit a button and create these records on their own. Since the user is doing this from the front end, their timezone is now going to be the timezone sent to the server instead of UTC. Previously our front-end record creation just sent the date as 06/01/2022 12:00:00 AM because we knew that the server would get this date, assume it was UTC, and we were good to go. This now means that we have to go in and specify that we want that to be UTC instead of the client’s timezone, otherwise some of our records will be 06/01/2022 12:00:00 AM and others will be 06/01/2022 06:00:00 AM or whatever offset from UTC the client’s timezone has.
Here’s why this is actually an excellent change and good news. If you’re building an app for people in your timezone this creates less headaches for you. If all of my users lived in Denver, CO, I can do less work to get all of the dates on records they create to be in the same timezone.
This change will be most problematic for anyone that wasn’t already formatting their dates and assuming the server would default them to UTC. I do think a good move from Bubble would be requiring you to specify a timezone when writing a workflow or a search constraint. This way there would never be any confusion.