Page MenuHomePhabricator

Article in Egyptian Arabic wiki (arz) returning completely empty contents from mobile-html endpoint
Open, Needs TriagePublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

$ curl -v https://arz.wikipedia.org/api/rest_v1/page/mobile-html/%D9%83%D9%86%D8%AC%D8%B1
* Host arz.wikipedia.org:443 was resolved.
* IPv6: 2620:0:863:ed1a::1
* IPv4: 198.35.26.96
*   Trying [2620:0:863:ed1a::1]:443...
* Connected to arz.wikipedia.org (2620:0:863:ed1a::1) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=*.wikipedia.org
*  start date: Oct 15 02:51:23 2024 GMT
*  expire date: Jan 13 02:51:22 2025 GMT
*  subjectAltName: host "arz.wikipedia.org" matched cert's "*.wikipedia.org"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://arz.wikipedia.org/api/rest_v1/page/mobile-html/%D9%83%D9%86%D8%AC%D8%B1
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: arz.wikipedia.org]
* [HTTP/2] [1] [:path: /api/rest_v1/page/mobile-html/%D9%83%D9%86%D8%AC%D8%B1]
* [HTTP/2] [1] [user-agent: curl/8.5.0]
* [HTTP/2] [1] [accept: */*]
> GET /api/rest_v1/page/mobile-html/%D9%83%D9%86%D8%AC%D8%B1 HTTP/2
> Host: arz.wikipedia.org
> User-Agent: curl/8.5.0
> Accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 200 
< etag: "7379249/c3417830-99db-11ef-97c2-b880d0d09e76"
< content-language: arz
< content-type: text/html; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/Mobile-HTML/1.2.2"
< vary: x-restbase-compat, Accept-Encoding
< cache-control: s-maxage=1209600, max-age=0
< access-control-allow-origin: *
< access-control-allow-methods: GET,HEAD
< access-control-allow-headers: accept, content-type, content-length, cache-control, accept-language, api-user-agent, if-match, if-modified-since, if-none-match, dnt, accept-encoding
< access-control-expose-headers: etag
< x-content-type-options: nosniff
< x-frame-options: SAMEORIGIN
< referrer-policy: origin-when-cross-origin
< x-xss-protection: 1; mode=block
< content-security-policy: default-src 'none'; connect-src app://*.wikipedia.org https://*.wikipedia.org; media-src app://upload.wikimedia.org https://upload.wikimedia.org 'self'; img-src app://*.wikimedia.org https://*.wikimedia.org app://wikimedia.org https://wikimedia.org 'self' data:; object-src 'none'; script-src app://meta.wikimedia.org https://meta.wikimedia.org 'unsafe-inline'; style-src app://meta.wikimedia.org https://meta.wikimedia.org app://*.wikipedia.org https://*.wikipedia.org 'self' 'unsafe-inline'; frame-ancestors 'self'
< x-content-security-policy: default-src 'none'; connect-src app://*.wikipedia.org https://*.wikipedia.org; media-src app://upload.wikimedia.org https://upload.wikimedia.org 'self'; img-src app://*.wikimedia.org https://*.wikimedia.org app://wikimedia.org https://wikimedia.org 'self' data:; object-src 'none'; script-src app://meta.wikimedia.org https://meta.wikimedia.org 'unsafe-inline'; style-src app://meta.wikimedia.org https://meta.wikimedia.org app://*.wikipedia.org https://*.wikipedia.org 'self' 'unsafe-inline'; frame-ancestors 'self'
< x-webkit-csp: default-src 'none'; connect-src app://*.wikipedia.org https://*.wikipedia.org; media-src app://upload.wikimedia.org https://upload.wikimedia.org 'self'; img-src app://*.wikimedia.org https://*.wikimedia.org app://wikimedia.org https://wikimedia.org 'self' data:; object-src 'none'; script-src app://meta.wikimedia.org https://meta.wikimedia.org 'unsafe-inline'; style-src app://meta.wikimedia.org https://meta.wikimedia.org app://*.wikipedia.org https://*.wikipedia.org 'self' 'unsafe-inline'; frame-ancestors 'self'
< content-location: https://arz.wikipedia.org/api/rest_v1/page/mobile-html/%D9%83%D9%86%D8%AC%D8%B1
< server: restbase2031
< content-length: 0
< date: Mon, 04 Nov 2024 06:25:28 GMT
< age: 42352
< x-cache: cp4039 miss, cp4039 hit/3
< x-cache-status: hit-front
< server-timing: cache;desc="hit-front", host;desc="cp4039"
< strict-transport-security: max-age=106384710; includeSubDomains; preload
< report-to: { "group": "wm_nel", "max_age": 604800, "endpoints": [{ "url": "https://intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0" }] }
< nel: { "report_to": "wm_nel", "max_age": 604800, "failure_fraction": 0.05, "success_fraction": 0.0}
< set-cookie: WMF-Last-Access=04-Nov-2024;Path=/;HttpOnly;secure;Expires=Fri, 06 Dec 2024 12:00:00 GMT
< set-cookie: WMF-Last-Access-Global=04-Nov-2024;Path=/;Domain=.wikipedia.org;HttpOnly;secure;Expires=Fri, 06 Dec 2024 12:00:00 GMT
< x-client-ip: 2601:645:8700:93e0:5262:210f:fdc:58fd
< set-cookie: GeoIP=US:CA:San_Francisco:37.78:-122.41:v4; Path=/; secure; Domain=.wikipedia.org
< set-cookie: NetworkProbeLimit=0.001;Path=/;Secure;SameSite=Lax;Max-Age=3600
< accept-ranges: bytes
< 
* Connection #0 to host arz.wikipedia.org left intact

What happens?:

A completely empty response (no text, no error message, 200 status) is returned

What should have happened instead?:

The HTML should be returned, or an appropriate error message.

Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):

Other information (browser name/version, screenshots, etc.):

The article appears to exist: https://arz.wikipedia.org/wiki/%D9%83%D9%86%D8%AC%D8%B1

But I don't read Arabic so I'm not entirely sure.

We can see from a verbose curl command that nothing is returned.

Event Timeline

Also, we (Kiwix) have observed this issue in the past on arz, but it was with a different article that is no longer broken (see https://github.com/openzim/mwoffliner/issues/2003)

Yes, that page is still broken. The original article that was reported is now working.

This is somewhat time sensitive, as the articles seem to "fix themselves" after some amount of time, so we need to investigate while the problem is still reproducible.

BPirkle subscribed.

Adding team tag for triage and visibility.

Hi everyone, I have the same problem when I connect to stream Wikimedia, but after some time I get no response and then the connection is closed.