You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Edge runtime's ICU time-zone data predates tzdata 2026e; America/Winnipeg is wrong from 2026-11-01 #759
Same class as #524 (America/Asuncion), which was closed as not planned. IANA tzdata 2026e (2026-09-29) moves
Manitoba to permanent UTC−5 from 2026-11-01, and the runtime still applies the old rules.
Got: 12:00 PM GMT-6 on public.ecr.aws/supabase/edge-runtime v1.74.2 and v1.77.4 (Deno 2.1.4 compatible,
V8 11.6.189.12).
Expected with tzdata ≥ 2026e: 01:00 PM GMT-5, which Node 24.22.1 answers.
Impact: from 2026-11-01, any function that renders a Winnipeg time (texts, emails, receipts) states the wrong
hour and disagrees with clients on current rules.
Ask: a runtime build with time-zone data ≥ 2026e, for local images and deployed functions, before 2026-11-01.
Since #524 shows the runtime's zone data trailing IANA, please also give a way to see which tzdata a release
carries.
Another zone already affected: Africa/Casablanca. Morocco moved to permanent UTC+0 on 2026-09-20 (IANA tzdata 2026c), and the runtime still applies UTC+1. Any "local day" computed between 23:00 and 00:00 UTC is a day ahead.
Which tzdata the binary carries, answering part of the ask: the ICU TZVersion string (UTF-16) inside /usr/local/bin/edge-runtime reads 2024a with ICU 74 on supabase/edge-runtime v1.71.2, v1.74.0, v1.74.2 and v1.77.9. I cross-checked the method on Node binaries with a known process.versions.tz (22.23.0 → 2026a, 22.23.4 → 2026e).
Workaround until a new build ships: ICU reads ICU_TIMEZONE_FILES_DIR first. Mount the four files from unicode-org/icu-data/tzdata/icunew/2026e/44/le/ (zoneinfo64.res, timezoneTypes.res, metaZones.res, windowsZones.res; format 44 = ICU 74) and set the variable:
Tested on self-hosted v1.71.2 and v1.74.0: Casablanca reads 12:00 GMT on 2026-09-21, and historical rules are kept (Ramadan 2026 still UTC+0, the surrounding dates UTC+1). This should fix America/Winnipeg as well, since 2026e is the version that carries that change, though I have not checked that zone. It only helps self-hosted setups, so deployed functions still need a runtime build with tzdata ≥ 2026e.
Activity
AbdelkbirNA commentedon Oct 29, 2026
Another zone already affected: Africa/Casablanca. Morocco moved to permanent UTC+0 on 2026-09-20 (IANA tzdata 2026c), and the runtime still applies UTC+1. Any "local day" computed between 23:00 and 00:00 UTC is a day ahead.
Which tzdata the binary carries, answering part of the ask: the ICU
TZVersionstring (UTF-16) inside/usr/local/bin/edge-runtimereads 2024a with ICU 74 onsupabase/edge-runtimev1.71.2, v1.74.0, v1.74.2 and v1.77.9. I cross-checked the method on Node binaries with a knownprocess.versions.tz(22.23.0 → 2026a, 22.23.4 → 2026e).Workaround until a new build ships: ICU reads
ICU_TIMEZONE_FILES_DIRfirst. Mount the four files fromunicode-org/icu-data/tzdata/icunew/2026e/44/le/(zoneinfo64.res,timezoneTypes.res,metaZones.res,windowsZones.res; format 44 = ICU 74) and set the variable:Tested on self-hosted v1.71.2 and v1.74.0: Casablanca reads
12:00 GMTon 2026-09-21, and historical rules are kept (Ramadan 2026 still UTC+0, the surrounding dates UTC+1). This should fix America/Winnipeg as well, since 2026e is the version that carries that change, though I have not checked that zone. It only helps self-hosted setups, so deployed functions still need a runtime build with tzdata ≥ 2026e.