This is crazy, but when I ask MCS for the content via curl I get back an etag header:
curl -i http://appservice.wmflabs.org/en.wikipedia.org/v1/page/mobile-sections/User%3APchelolo%2FAccess_Check_Tests
BUT when I query the same URL with preq I don't get an etag header back.
preq.get({ uri: 'http://appservice.wmflabs.org/en.wikipedia.org/v1/page/mobile-sections/User%3APchelolo%2FAccess_Check_Tests', }).then(function (res) { console.log(res.headers.etag); });
The problem is that preq is setting an Accept-Encoding: gzip, deflate header, which curl doesn't. Apparently the response of the Mobile-Content-Service is dependent on that header which it shouldn't be.
In production that's not happening, so apparently it's been broken in beta labs recently. This is a blocker for MCS deployment, because RESTBase really needs these etags to be set since our access control is based on them for mobile content.