August 16, 2026

Site Update: Every Morning Until Eight, We Thought It Was Still Yesterday

The August 16 maintenance pass. First, a bug we found ourselves: the site worked out what day it was from the server's timezone, and the server runs in UTC, eight hours behind Shanghai. So between midnight and eight every morning, concerts that had already finished were still listed as upcoming. Fixed. Nineteen concerts listed a full programme and not one performer; sixteen of them now name the players, and ten pages that carried the promoter's marketing copy carry ours instead.

By 小魔女·Edited by 马勒迷

We read the Shanghai Municipal Administration of Culture and Tourism's performance permits every day, then re-check each venue's own ticketing endpoint. Here is the August 16 pass. The thing we got wrong comes first.

Until eight every morning, the site thought it was still yesterday

This site runs on Cloudflare's servers, and those run in UTC, eight hours behind Shanghai. The code that worked out what day it was read the server's local time. So for the eight hours between midnight and 08:00 in Shanghai, the site's idea of today was in fact yesterday.

The consequence is not abstract. A concert that started at 19:30 and ended at 21:30 last night was still sitting in the upcoming lists when you looked at seven the next morning, and the red numeral that marks tonight on the calendar marked the wrong row. It is the most basic thing a concert calendar has to get right, and we had it wrong for eight hours out of every twenty-four.

We had already fixed one instance of this same mistake, for ticket release times: a 14:00 on-sale announced by the venue read back as 06:00 in UTC and printed as six in the morning. That fix pinned release moments to Asia/Shanghai and never went back to look at how "today" was computed. We fixed a field, not a class.

Today is now pinned to Shanghai too, and there is a check that runs daily: fetch the homepage, compare the date it prints against Shanghai's calendar date, complain if they differ. Nobody was ever going to report this one. It only happens between midnight and dawn, and almost nobody reads a concert calendar then. A machine has to watch it.

Nineteen concerts listed a full programme and never said who was playing

This took the most time. Going through the forward calendar, we found a hundred and fifty concerts with no performer entry at all. Nineteen of those had a complete programme: every piece written out, and not one name.

The list is not flattering. Anna Netrebko, Angela Gheorghiu, Behzod Abduraimov, Paul Lewis, Jian Wang with Göran Söllscher, Ning Feng, the Vienna Boys' Choir, Noah Bendix-Balgley with Diyang Mei. These are exactly the names a reader types into a search box, and our pages had no such name to click.

Eighteen of them are now closed, sixteen from that group of nineteen: forty-three new artist and ensemble entries and fifty links between people and concerts, every one read off the presenter's own page today. Where the official page gives a name and says nothing else, the biography stays empty rather than invented. A hundred and thirty-three concerts still name nobody, mostly because nobody has been announced; we will keep going.

One page gained more than names. The Shanghai Philharmonic's season opening on September 6 had a programme and nothing else; it now carries Zhang Yi conducting, the tenor Kirill Popov, the bass Pavel Chernykh, and two choirs. It is an all-Shostakovich night, and the cantata The Sun Shines Over Our Motherland, Op. 90 is a Chinese premiere.

Ten concert pages carried the promoter's marketing copy

The other thing that should not have waited. On ten concerts the description was the presenter's page pasted in whole. The worst ran to more than five thousand characters and contained the programme, the artist biographies, and lines about pianos having their explosive power and dramatic tension turned all the way up.

Three problems with that. It is not a description: the programme is already set out further down the same page, the biographies now have artist pages of their own, and the page said the same thing three times. It is not how we talk. And it is byte-identical to a page a search engine indexed long ago, so republishing it adds nothing for anyone.

All ten are rewritten to two to four sentences: who is playing, what they are playing, and what is worth knowing. The English was written too. None of those ten had a single word of it before.

The Silk Road Story, on sale August 19 at 11:18

A full diff of the Oriental Art Center's ticketing catalogue against our calendar turned up one concert we did not have at all: the 2025 revision of the dance drama The Silk Road Story, November 7 at 19:15 and November 8 at 14:00 in the Opera Hall, 180 to 880 yuan, on sale August 19 at 11:18.

No permit covers it, because it is not a foreign production; it exists only in the venue's own catalogue. This class of miss is findable only by diffing the whole catalogue. The diff is not the hard part. Remembering to run it is.

Four amended permits

Six permits were decided on August 14, all amendments, and four of them touch concerts we already list: the Stuttgart Chamber Orchestra on September 10 adds a work, Pappano and the LSO on September 23 add a player, Khatia Buniatishvili on November 15 adds a work. None of them changes a date or a hall, so we stored the permits as sources and left the pages as they were.

Buniatishvili is worth a note. Three permits now touch that date and the venue's ticketing catalogue still does not list it, which means the release wave has not reached it. We go on saying it is not yet on sale.

Browse every concert on Shanghai Concerts