User Details
- User Since
- Jul 17 2019, 4:10 PM (378 w, 23 h)
- Availability
- Available
- LDAP User
- Unknown
- MediaWiki User
- Nokib Sarkar [ Global Accounts ]
Jul 10 2026
We submitted the evaluation, thanks for reminder
May 24 2026
Instructions
- Go to campaign page: (like https://campwiz.toolforge.org/campaign/c3aw0njl4aeio)
- Go to Console (You can press Ctrl + Shift + I at the same time or use Inspect option after pressing right clicking on anything)
- Paste the code above and press Enter
It would automatically grab the campaign id if pasted in proper place, or ask you to give the campaign id.
May 1 2026
@Hasish_Infant You are absolutely welcome to our community and we would love to have you among us. But, the project is not only migration, but also redesigning the frontend too. You can help us give some designs of the interfaces or any efficiency/optimization suggestions. But I would recommend you to start from the bug reports/issues given on github/gitlab. @Tiven2240 might help you onboard. Thank you very much for your interest.
Apr 11 2026
So, the issue was I had a job named campwiz-backend using push-to-deploy. My tool name was also campwiz-backend. So, when I tried to start the webservice, it gave a conflict because (I think), it also wanted to create a job named campwiz-backend. Now, @taavi cleared that I cannot still use push-to-deploy for the webservice and about the issue. I need to manually build the image and use that. So, now everything is working. Thanks everyone.
tools.campwiz-backend@tools-bastion-15:~$ toolforge webservice restart
Could not find a public_html folder or a .lighttpd.conf file in your tool home.
tools.campwiz-backend@tools-bastion-15:~$ toolforge webservice buildservice start --mount all
Traceback (most recent call last):
File "/usr/bin/toolforge-webservice", line 33, in <module>
sys.exit(load_entry_point('toolforge-webservice==0.103.19', 'console_scripts', 'toolforge-webservice')())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 579, in main
start(job, "Starting webservice")
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 105, in start
job.request_start()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/backends/kubernetes.py", line 683, in request_start
self.api.create_object(
~~~~~~~~~~~~~~~~~~~~~~^
"deployments", self._get_deployment(started_at)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/kubernetes.py", line 250, in create_object
return self.post(
~~~~~~~~~^
kind,
^^^^^
...<2 lines>...
**kwargs,
^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 190, in post
response = self._make_request("POST", url, **kwargs).json()
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 157, in _make_request
raise e
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 136, in _make_request
response.raise_for_status()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: https://k8s.tools.eqiad1.wikimedia.cloud:6443/apis/apps/v1/namespaces/tool-campwiz-backend/deployments
tools.campwiz-backend@tools-bastion-15:~$ date
Sat Apr 11 12:10:48 UTC 2026
tools.campwiz-backend@tools-bastion-15:~$Hi, any updates? I cannot start the webservice even today for campwiz. is it possible to start by you on behalf of me from backend?
Apr 10 2026
hi, i have been seeing it for the past two days straight. I copied some useful debug information (today) which might be beneficial.
nokibsarkar@tools-bastion-15:~$ become campwiz-backend
tools.campwiz-backend@tools-bastion-15:~$ toolforge webservice buildservice start --mount all
Traceback (most recent call last):
File "/usr/bin/toolforge-webservice", line 33, in <module>
sys.exit(load_entry_point('toolforge-webservice==0.103.19', 'console_scripts', 'toolforge-webservice')())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 579, in main
start(job, "Starting webservice")
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 105, in start
job.request_start()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/backends/kubernetes.py", line 683, in request_start
self.api.create_object(
~~~~~~~~~~~~~~~~~~~~~~^
"deployments", self._get_deployment(started_at)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/kubernetes.py", line 250, in create_object
return self.post(
~~~~~~~~~^
kind,
^^^^^
...<2 lines>...
**kwargs,
^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 190, in post
response = self._make_request("POST", url, **kwargs).json()
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 157, in _make_request
raise e
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 136, in _make_request
response.raise_for_status()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: https://k8s.tools.eqiad1.wikimedia.cloud:6443/apis/apps/v1/namespaces/tool-campwiz-backend/deployments
tools.campwiz-backend@tools-bastion-15:~$ toolforge webservice logs
No logs found!
tools.campwiz-backend@tools-bastion-15:~$ toolforge components build list
Usage: toolforge-components [OPTIONS] COMMAND [ARGS]...
Try 'toolforge-components --help' for help.Apr 8 2026
Now it gave me
Traceback (most recent call last):
File "/usr/bin/toolforge-webservice", line 33, in <module>
sys.exit(load_entry_point('toolforge-webservice==0.103.19', 'console_scripts', 'toolforge-webservice')())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 591, in main
start(job, "Your job is not running, starting")
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 105, in start
job.request_start()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/backends/kubernetes.py", line 683, in request_start
self.api.create_object(
~~~~~~~~~~~~~~~~~~~~~~^
"deployments", self._get_deployment(started_at)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/kubernetes.py", line 250, in create_object
return self.post(
~~~~~~~~~^
kind,
^^^^^
...<2 lines>...
**kwargs,
^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 190, in post
response = self._make_request("POST", url, **kwargs).json()
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 157, in _make_request
raise e
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 136, in _make_request
response.raise_for_status()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: https://k8s.tools.eqiad1.wikimedia.cloud:6443/apis/apps/v1/namespaces/tool-campwiz-backend/deployments
tools.campwiz-backend@tools-bastion-15:~$ toolforge webservice buildservice restart --mount all
Traceback (most recent call last):
File "/usr/bin/toolforge-webservice", line 33, in <module>
sys.exit(load_entry_point('toolforge-webservice==0.103.19', 'console_scripts', 'toolforge-webservice')())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 591, in main
start(job, "Your job is not running, starting")
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolsws/cli/webservice.py", line 105, in start
job.request_start()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/toolsws/backends/kubernetes.py", line 683, in request_start
self.api.create_object(
~~~~~~~~~~~~~~~~~~~~~~^
"deployments", self._get_deployment(started_at)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/kubernetes.py", line 250, in create_object
return self.post(
~~~~~~~~~^
kind,
^^^^^
...<2 lines>...
**kwargs,
^^^^^^^^^
)
^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 190, in post
response = self._make_request("POST", url, **kwargs).json()
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 157, in _make_request
raise e
File "/usr/lib/python3/dist-packages/toolforge_weld/api_client.py", line 136, in _make_request
response.raise_for_status()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: https://k8s.tools.eqiad1.wikimedia.cloud:6443/apis/apps/v1/namespaces/tool-campwiz-backend/deploymentswhen I ran toolforge webservice buildservice restart --mount all
Apr 7 2026
Also got
tools.campwiz-backend-beta@tools-bastion-15:~$ toolforge components config create toolforge.yaml
Warning: You are using a beta feature of Toolforge.
ComponentsClientError: HTTPSConnectionPool(host='10.96.0.1', port=443): Max retries exceeded with url: /apis/components-api.toolforge.org/v1/namespaces/tool-campwiz-backend-beta/toolconfigs (Caused by NewConnectionError("HTTPSConnection(host='10.96.0.1', port=443): Failed to establish a new connection: [Errno 111] Connection refused"))
Please report this issue to the Toolforge admins if it persists: https://w.wiki/6ZuuMar 29 2026
We expect the candidates to submit their interview request with specific email (support+gsoc26@wikilovesfolklore.org). Since you already have one ready, you (as well as other candidates) are welcome to submit.
@AryanAnand25 Actually, we are getting a lot of pull requests from a lot of candidates, so we are not accepting/commenting on any pull request now. Most of them are AI generated pull requests which might not as constructive as a human. As a result, we decided to interview the candidates to ensure proper qualifications and skills. Please send an email to support+gsoc26@wikilovesfolklore.org. please include the link to your pull request of the microtask, whether you are a Wikimedian, first time GSoC contributor, full time professional and share your outlook toward Open Source contribution besides your other relavant contributions. We might give you slots for interview if your email gives us enough merit. Remember to include [GSoC 2026] in your subject line.
Mar 25 2026
@MilkyM
In the meantime, please use https://uploaders-in-cat.toolforge.org/ as an alternative (basic prototype) created by Wiki Loves Folklore Dev Team.
Mar 21 2026
Please use support+gsoc26@wikilovesfolklore.org
Mar 15 2026
Can you please use support+gsoc26@wikilovesfolklore.org?
Hi @arya55, we can confirm the email tools+gsoc26@wikilovesfolklore.org works correctly. Please try again.
As per my understanding, we would not restrict your participation in both GSoC and Outreachy if rules allow provided that you commit your assigned hours in this project (if selected).
The interview would be as soon as possible in March. Also, yes, you need experience with microtask.
Sorry, can you rephrase the question?
Not exactly proposal, but a short bio and past open source contributions so that we can determine a short interview slot based on our availability. Do not forget to mention your availability too. Always remember, we want the email to be short, and not be AI generated at all.
Actually, we are getting a lot of pull requests from a lot of candidates, so we are not accepting/commenting on any pull request now. Most of them are AI generated pull requests which might not as constructive as a human. As a result, we decided to interview the candidates to ensure proper qualifications and skills. Please send an email to tools+gsoc26@wikilovesfolklore.org. please include whether you are a Wikimedian, first time GSoC contributor, full time professional and your outlook toward Open Source contribution besides your other relavant contributions. We might give you slots for interview if your email gives us enough merit. Remember to include [GSoC 2026] in your subject line.
Actually, we are getting a lot of pull requests from a lot of candidates, so we are not accepting/commenting on any pull request now. Most of them are AI generated pull requests which might not as constructive as a human. As a result, we decided to interview the candidates to ensure proper qualifications and skills. Please send an email to support+gsoc26@wikilovesfolklore.org. please include whether you are a Wikimedian, first time GSoC contributor, full time professional and share your outlook toward Open Source contribution besides your other relavant contributions. We might give you slots for interview if your email gives us enough merit. Remember to include [GSoC 2026] in your subject line.
Feb 6 2026
I am not sure whether my comment is related to this, but my campwiz-nxt build (which used to be build using go 1.24 properly) suddenly is broken (See the logs using toolforge build logs campwiz-backend-dev-buildpacks-pipelinerun-x8c54). it is showing that heroku/go:0.1.13 is being used which only supports upto go1.21. Before the Push-and-Deploy, I used to build the backend using go1.24. I am getting the following:
[step-detect] 2026-02-06T17:56:14.471730657Z 2 of 4 buildpacks participating [step-detect] 2026-02-06T17:56:14.471846552Z heroku/go 0.1.13 [step-detect] 2026-02-06T17:56:14.471863050Z heroku/procfile 2.0.2 [step-restore] 2026-02-06T17:56:03.647139396Z 2026/02/06 17:56:03 warning: unsuccessful cred copy: ".docker" from "/tekton/creds" to "/tekton/home": unable to open destination: open /tekton/home/.docker/config.json: permission denied [step-build] 2026-02-06T17:56:15.253735558Z [step-build] 2026-02-06T17:56:15.253795469Z [Reading build configuration] [step-build] 2026-02-06T17:56:15.261732071Z Detected Go version requirement: =1.24.1 [step-build] 2026-02-06T17:56:15.262765305Z [step-build] 2026-02-06T17:56:15.262802661Z [Error: Heroku Go Buildpack version resolution error] [step-build] 2026-02-06T17:56:15.262807802Z Couldn't resolve go version for: =1.24.1 [step-build] 2026-02-06T17:56:15.264415401Z ERROR: failed to build: exit status 1
@LGoto Sorry for late reply, I think something is wrong with my notification. Anyway, I added 90 hours. Thanks. If there is any other required changes, please do not hesitate.
Jan 27 2026
Jan 25 2026
@Hridyesh_Gupta No, this is the correct url for the backend. You do not need to run backend locally, although if you want, you can run it locally.
Jan 23 2026
@Sanjaydevs I added some microtasks.
My jobs.yaml is as follows:
# Continuous job for doing that shit - name: campwiz-backend-thing image: tool-campwiz-backend/tool-campwiz-backend:latest command: launcher campwiz --port 8080 continuous: true filelog: true filelog-stderr: /data/project/campwiz-backend/.log/campwiz-backend.err filelog-stdout: /data/project/campwiz-backend/.log/campwiz-backend.log # emails: onfailure port: 8080 cpu: 1 mem: 1Gi mount: all retry: 3 # Continuous job for NOT doing that shit - name: campwiz-backend-readonly image: tool-campwiz-backend/tool-campwiz-backend:latest command: launcher campwiz --port 8081 --readonly continuous: true emails: onfailure port: 8081 cpu: 0.5 mem: 512Mi mount: all retry: 3
Jan 12 2026
Jan 11 2026
Jan 10 2026
Jun 30 2025
Jun 16 2025
Some translations were copied from English in the source code for technical reasons. But, these are either machine translated or not translated at all. Fuzzybot picked up these and added in the completion percentage. So, it might be possible that a volunteer, seeing 100% completion rate, would not attempt to actually check and translate the messages. So, I am asking,
- is it possible to remove those translations?
- Or at least, rebase from my current commit where all the redundant translations are removed. (Those which were already touched by volunteers should be kept, only the fuzzy bot imports should be deleted)
@Wangombe Added translatewiki as collaborator.
Jun 14 2025
I think I should wait untill the confirmation of data consistency.
Jun 13 2025
So, can I start using the new file table?
$ curl https://upload.wikimedia.org/wikipedia/commons/e/eb/SMS_Arcona_NH_65764_-_Restoration.jpg --output test.jpg -v --trace-time % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 016:28:50.144701 * Trying 103.102.166.240:443... 16:28:50.199055 * Connected to upload.wikimedia.org (103.102.166.240) port 443 (#0) 16:28:50.200910 * ALPN, offering h2 16:28:50.200996 * ALPN, offering http/1.1 16:28:50.225796 * CAfile: /etc/ssl/certs/ca-certificates.crt 16:28:50.225905 * CApath: /etc/ssl/certs 16:28:50.226217 * TLSv1.0 (OUT), TLS header, Certificate Status (22): 16:28:50.226296 } [5 bytes data] 16:28:50.226388 * TLSv1.3 (OUT), TLS handshake, Client hello (1): 16:28:50.226457 } [512 bytes data] 16:28:50.281819 * TLSv1.2 (IN), TLS header, Certificate Status (22): 16:28:50.281924 { [5 bytes data] 16:28:50.282020 * TLSv1.3 (IN), TLS handshake, Server hello (2): 16:28:50.282090 { [122 bytes data] 16:28:50.282448 * TLSv1.2 (IN), TLS header, Finished (20): 16:28:50.282543 { [5 bytes data] 16:28:50.282634 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.282683 { [5 bytes data] 16:28:50.282775 * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): 16:28:50.282833 { [19 bytes data] 16:28:50.282930 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.282988 { [5 bytes data] 16:28:50.283088 * TLSv1.3 (IN), TLS handshake, Certificate (11): 16:28:50.283138 { [4545 bytes data] 16:28:50.284105 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.284165 { [5 bytes data] 16:28:50.284282 * TLSv1.3 (IN), TLS handshake, CERT verify (15): 16:28:50.284340 { [78 bytes data] 16:28:50.284571 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.284635 { [5 bytes data] 16:28:50.284736 * TLSv1.3 (IN), TLS handshake, Finished (20): 16:28:50.284791 { [36 bytes data] 16:28:50.284909 * TLSv1.2 (OUT), TLS header, Finished (20): 16:28:50.284980 } [5 bytes data] 16:28:50.285050 * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): 16:28:50.285090 } [1 bytes data] 16:28:50.285246 * TLSv1.2 (OUT), TLS header, Supplemental data (23): 16:28:50.285324 } [5 bytes data] 16:28:50.285451 * TLSv1.3 (OUT), TLS handshake, Finished (20): 16:28:50.285513 } [36 bytes data] 16:28:50.285674 * SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 16:28:50.285760 * ALPN, server accepted to use h2 16:28:50.285819 * Server certificate: 16:28:50.285907 * subject: CN=*.wikipedia.org 16:28:50.285968 * start date: May 23 12:35:52 2025 GMT 16:28:50.286023 * expire date: Aug 21 12:35:51 2025 GMT 16:28:50.286100 * subjectAltName: host "upload.wikimedia.org" matched cert's "*.wikimedia.org" 16:28:50.286162 * issuer: C=US; O=Google Trust Services; CN=WR1 16:28:50.286214 * SSL certificate verify ok. 16:28:50.286306 * Using HTTP2, server supports multiplexing 16:28:50.286362 * Connection state changed (HTTP/2 confirmed) 16:28:50.286435 * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 16:28:50.286528 * TLSv1.2 (OUT), TLS header, Supplemental data (23): 16:28:50.286571 } [5 bytes data] 16:28:50.286694 * TLSv1.2 (OUT), TLS header, Supplemental data (23): 16:28:50.286750 } [5 bytes data] 16:28:50.286857 * TLSv1.2 (OUT), TLS header, Supplemental data (23): 16:28:50.286896 } [5 bytes data] 16:28:50.286966 * Using Stream ID: 1 (easy handle 0x58d8b80cb9f0) 16:28:50.287031 * TLSv1.2 (OUT), TLS header, Supplemental data (23): 16:28:50.287088 } [5 bytes data] 16:28:50.287177 > GET /wikipedia/commons/e/eb/SMS_Arcona_NH_65764_-_Restoration.jpg HTTP/2 16:28:50.287177 > Host: upload.wikimedia.org 16:28:50.287177 > user-agent: curl/7.81.0 16:28:50.287177 > accept: */* 16:28:50.287177 > 16:28:50.337925 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.338049 { [5 bytes data] 16:28:50.338246 * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): 16:28:50.338318 { [249 bytes data] 16:28:50.338484 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.338551 { [5 bytes data] 16:28:50.338654 * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): 16:28:50.338726 { [249 bytes data] 16:28:50.338845 * old SSL session ID is stale, removing 16:28:50.338972 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.339034 { [5 bytes data] 16:28:50.339263 * TLSv1.2 (OUT), TLS header, Supplemental data (23): 16:28:50.339318 } [5 bytes data] 16:28:50.339541 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.339615 { [5 bytes data] 16:28:50.340656 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.340724 { [5 bytes data] 16:28:50.393680 < HTTP/2 200 16:28:50.393741 < content-type: image/jpeg 16:28:50.393811 < x-object-meta-sha1base36: 7yv76sq0yyt874jyp2cxzdqb8kc4jn6 16:28:50.393884 < last-modified: Wed, 17 Jul 2019 04:49:49 GMT 16:28:50.393936 < accept-ranges: bytes 16:28:50.393979 < content-length: 12443538 16:28:50.394043 < date: Fri, 13 Jun 2025 07:45:52 GMT 16:28:50.394120 < server: envoy 16:28:50.394172 < etag: ee9ff4d78e862820191f1604b19efbe6 16:28:50.394242 < age: 9778 16:28:50.394299 < x-cache: cp5031 hit, cp5031 pass 16:28:50.394346 < x-cache-status: hit-local 16:28:50.394412 < server-timing: cache;desc="hit-local", host;desc="cp5031" 16:28:50.394469 < strict-transport-security: max-age=106384710; includeSubDomains; preload 16:28:50.394530 < 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" }] } 16:28:50.394610 < nel: { "report_to": "wm_nel", "max_age": 604800, "failure_fraction": 0.05, "success_fraction": 0.0} 16:28:50.394688 < x-client-ip: 118.179.115.209 16:28:50.394766 < x-content-type-options: nosniff 16:28:50.394816 < access-control-allow-origin: * 16:28:50.394888 < access-control-expose-headers: Age, Date, Content-Length, Content-Range, X-Content-Duration, X-Cache 16:28:50.394958 < timing-allow-origin: * 16:28:50.395015 < set-cookie: WMF-Uniq=qJ3P-nKgzwUkDsjghsJ6ugIRAAAAAFvd8Y2L2k1gpHosgdqHukNbvfmTO6El3uID;Domain=upload.wikimedia.org;Path=/;HttpOnly;secure;SameSite=None;Expires=Sat, 13 Jun 2026 00:00:00 GMT 16:28:50.395076 < 16:28:50.395143 { [13661 bytes data] 16:28:50.395480 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.395545 { [5 bytes data] 16:28:50.410701 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.410794 { [5 bytes data] 16:28:50.428695 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.428765 { [5 bytes data] 16:28:50.462533 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.462601 { [5 bytes data] 16:28:50.466799 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.466919 { [5 bytes data] 16:28:50.480562 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.480653 { [5 bytes data] 16:28:50.495497 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.495593 { [5 bytes data] 16:28:50.505366 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.505433 { [5 bytes data] 16:28:50.513159 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.513255 { [5 bytes data] 16:28:50.519403 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.519464 { [5 bytes data] 16:28:50.526693 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.526775 { [5 bytes data] 16:28:50.533760 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.533822 { [5 bytes data] 16:28:50.539448 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.539525 { [5 bytes data] 16:28:50.545528 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.545598 { [5 bytes data] 16:28:50.551317 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.551438 { [5 bytes data] 16:28:50.556377 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.556454 { [5 bytes data] 16:28:50.561780 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.561846 { [5 bytes data] 16:28:50.566247 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.566311 { [5 bytes data] 16:28:50.571098 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.571174 { [5 bytes data] 16:28:50.575474 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.575541 { [5 bytes data] 16:28:50.578085 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.578133 { [5 bytes data] 16:28:50.582511 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.582581 { [5 bytes data] 16:28:50.585313 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.585384 { [5 bytes data] 16:28:50.588978 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.589050 { [5 bytes data] 16:28:50.591504 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.591572 { [5 bytes data] 16:28:50.593855 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.593919 { [5 bytes data] 16:28:50.597651 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.597771 { [5 bytes data] 16:28:50.599431 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.599517 { [5 bytes data] 16:28:50.603741 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.603824 { [5 bytes data] 16:28:50.604628 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.604690 { [5 bytes data] 16:28:50.606972 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.607042 { [5 bytes data] 16:28:50.609833 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.609919 { [5 bytes data] 16:28:50.611403 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.611470 { [5 bytes data] 16:28:50.614038 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.614122 { [5 bytes data] 16:28:50.616848 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.616914 { [5 bytes data] 16:28:50.618470 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.618548 { [5 bytes data] 16:28:50.622549 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.622634 { [5 bytes data] 16:28:50.622856 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.622913 { [5 bytes data] 16:28:50.624330 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.624394 { [5 bytes data] 16:28:50.629143 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.629226 { [5 bytes data] 16:28:50.629395 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.629468 { [5 bytes data] 16:28:50.630839 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.630922 { [5 bytes data] 16:28:50.632438 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.632501 { [5 bytes data] 16:28:50.633890 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.633959 { [5 bytes data] 16:28:50.637533 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.637623 { [5 bytes data] 16:28:50.639311 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.639380 { [5 bytes data] 16:28:50.639596 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.639658 { [5 bytes data] 16:28:50.641105 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.641268 { [5 bytes data] 16:28:50.642653 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.642719 { [5 bytes data] 16:28:50.644366 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.644432 { [5 bytes data] 16:28:50.645838 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.645903 { [5 bytes data] 16:28:50.648311 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.648387 { [5 bytes data] 16:28:50.651221 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.651277 { [5 bytes data] 16:28:50.651440 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.651506 { [5 bytes data] 16:28:50.652348 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.652457 { [5 bytes data] 16:28:50.653887 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.653960 { [5 bytes data] 16:28:50.654904 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.654966 { [5 bytes data] 16:28:50.656904 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.656976 { [5 bytes data] 16:28:50.657846 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.657943 { [5 bytes data] 16:28:50.658409 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.658488 { [5 bytes data] 16:28:50.659687 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.659756 { [5 bytes data] 16:28:50.661962 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.662053 { [5 bytes data] 16:28:50.662549 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.662670 { [5 bytes data] 16:28:50.663735 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.663804 { [5 bytes data] 16:28:50.665090 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.665161 { [5 bytes data] 16:28:50.667013 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.667086 { [5 bytes data] 16:28:50.667584 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.667670 { [5 bytes data] 16:28:50.668873 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.668976 { [5 bytes data] 16:28:50.670547 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.670634 { [5 bytes data] 16:28:50.672241 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.672310 { [5 bytes data] 16:28:50.673218 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.673316 { [5 bytes data] 16:28:50.673796 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.673874 { [5 bytes data] 16:28:50.675205 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.675283 { [5 bytes data] 16:28:50.677255 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.677325 { [5 bytes data] 16:28:50.678205 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.678269 { [5 bytes data] 16:28:50.680185 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.680261 { [5 bytes data] 16:28:50.680452 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.680517 { [5 bytes data] 16:28:50.681968 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.682040 { [5 bytes data] 16:28:50.683305 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.683402 { [5 bytes data] 16:28:50.684813 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.684893 { [5 bytes data] 16:28:50.686579 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.686670 { [5 bytes data] 16:28:50.687133 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.687208 { [5 bytes data] 16:28:50.688638 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.688730 { [5 bytes data] 16:28:50.689989 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.690055 { [5 bytes data] 16:28:50.691205 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.691305 { [5 bytes data] 16:28:50.693793 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.693944 { [5 bytes data] 16:28:50.694996 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.695063 { [5 bytes data] 16:28:50.696326 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.696396 { [5 bytes data] 16:28:50.697700 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.697864 { [5 bytes data] 16:28:50.699052 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.699122 { [5 bytes data] 16:28:50.700954 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.701012 { [5 bytes data] 16:28:50.701298 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.701408 { [5 bytes data] 16:28:50.703235 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.703336 { [5 bytes data] 16:28:50.705102 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.705195 { [5 bytes data] 16:28:50.705485 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.705644 { [5 bytes data] 16:28:50.707278 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.707452 { [5 bytes data] 16:28:50.707816 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.707950 { [5 bytes data] 16:28:50.709493 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.709565 { [5 bytes data] 16:28:50.711698 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.711790 { [5 bytes data] 16:28:50.712947 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.713018 { [5 bytes data] 16:28:50.713370 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.713451 { [5 bytes data] 16:28:50.716079 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.716182 { [5 bytes data] 16:28:50.716796 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.716961 { [5 bytes data] 16:28:50.717210 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.717298 { [5 bytes data] 16:28:50.719193 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.719271 { [5 bytes data] 16:28:50.720261 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.720355 { [5 bytes data] 16:28:50.721255 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.721364 { [5 bytes data] 16:28:50.723754 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.723909 { [5 bytes data] 16:28:50.724735 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.724839 { [5 bytes data] 16:28:50.725070 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.725133 { [5 bytes data] 16:28:50.726413 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.726496 { [5 bytes data] 16:28:50.727921 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.728129 { [5 bytes data] 16:28:50.728924 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.728994 { [5 bytes data] 16:28:50.731180 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.731245 { [5 bytes data] 16:28:50.731470 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.731535 { [5 bytes data] 16:28:50.733181 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.733311 { [5 bytes data] 16:28:50.735854 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.735949 { [5 bytes data] 16:28:50.736593 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.736667 { [5 bytes data] 16:28:50.737920 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.737993 { [5 bytes data] 16:28:50.738422 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.738486 { [5 bytes data] 16:28:50.740256 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.740373 { [5 bytes data] 16:28:50.741432 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.741550 { [5 bytes data] 16:28:50.742627 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.742694 { [5 bytes data] 16:28:50.743644 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.743749 { [5 bytes data] 16:28:50.744732 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.744796 { [5 bytes data] 16:28:50.746681 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.746805 { [5 bytes data] 16:28:50.747662 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.747805 { [5 bytes data] 16:28:50.749220 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.749292 { [5 bytes data] 16:28:50.750456 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.750526 { [5 bytes data] 16:28:50.752911 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.753047 { [5 bytes data] 16:28:50.753227 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.753301 { [5 bytes data] 16:28:50.754085 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.754217 { [5 bytes data] 16:28:50.755657 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.755734 { [5 bytes data] 16:28:50.756739 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.756845 { [5 bytes data] 16:28:50.759789 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.759897 { [5 bytes data] 16:28:50.760209 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.760253 { [5 bytes data] 16:28:50.760553 * TLSv1.2 (IN), TLS header, Supplemental data (23): 16:28:50.760658 { [5 bytes data] 16:28:50.761185 * HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8) 16:28:50.761306 * stopped the pause stream! 16 11.8M 16 2047k 0 0 3247k 0 0:00:03 --:--:-- 0:00:03 3250k 16:28:50.761824 * Connection #0 to host upload.wikimedia.org left intact curl: (92) HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)
Jun 11 2025
Jun 10 2025
Jun 8 2025
Jun 7 2025
Hi, any updates regarding when the translation thing might start? I wanted to add a translate button in my UI for asking users to help translate the thing.
Jun 4 2025
May 27 2025
What is the output of http://test-ipv6.com/helpdesk/ ?
Help desk code: 4
May 26 2025
@Ladsgroup As per their license, as long as we are not their commercial compeititor, the license is exactly like Open-source Apache license. I do not think I am even a commercial or a competing service or mediawiki itself is a competing organization. But, that's just my thought. Also, in my project, I am using their SDK and their service, not self-hosting.
May 24 2025
May 22 2025
A workaround might be toolforge jobs run --command "umask o-r; ( mariadb-dump --defaults-file=~/replica.my.cnf --host=tools-readonly.db.svc.wikimedia.cloud credentialUser__DBName > ~/DBname-$(date -I).sql )" --image mariadb backup (mentioned here).
@dcaro Most of the API are behind the login wall. The only public API might be <backend base>/api/v2/campaign/. The frontend is tested manually.
Upon checking more and more, seems like the performance is now quite comparable (I think cache is happening somewhere). My current performance issue remains loading thumbnail from wikimedia commons server. Users complained upto 10s of loading time for these thumbnails.
May 20 2025
May 19 2025
May 17 2025
Sent to answers@wikimedia.org
As the WMF-Legal project tag was added to this task, some general information to avoid wrong expectations:
Please note that public tasks in Wikimedia Phabricator are in general not a place where to expect feedback from the Legal Team of the Wikimedia Foundation due to the scope of the team and/or nature of legal topics. See the project tag description.
Please see https://meta.wikimedia.org/wiki/Legal for when and how to contact the Legal Team. Thanks!