Parsoid/JS/Troubleshooting

''' These instructions are specific to Parsoid/JS which is only used in MediaWiki 1.34 and below. '''

First, follow the setup instructions. If you aren't using Ubuntu or Debian, then you might have to follow the developer setup instructions instead.

Check that your localhost interwiki is set up correctly
1) Check that curl is installed, working, and can be accessed from anywhere on the command line: - If it says "'curl' is not recognized as an internal or external command, operable program or batch file.", then install curl and/or add its install directory to the system variables path (or move it somewhere that is in the path).

2) Check that your api is accessible from the server Parsoid is going to run on: - You should get something other than (less than 10 lines) that have " 404 Not Found " as one of the lines.

3) Set this URL in your  (  in a developer install):

- (In older versions of mediawiki, the api.php file is located in a subfolder, e.g.  '/w/' . In this case, the uri would be: ' https://your-mediawiki-server/w/api.php' .)

- (The domain does not have to be localhost, it can be anything, as long as the domain in the parsoid config and LocalSettings.php match. This is especially relevant when Multiple wikis sharing the same parsoid service)

4) Now (re-)start Parsoid ( on Ubuntu or Debian,   in a developer install) and verify that it is working: - Usually "Main_Page" is a good candidate for &lt;pagename&gt;.

- The first "localhost:8xxx" is yours (Apache) web server virtual host, for example it can be: your.public-domain.com; localhost; 127.0.0.1; 192.168.0.xxx; etc.). The second "/localhost/" is those set up in:.

- You can set up any number of wikis by adding more  statements in settings.js / localsettings.js.

5) In the Parsoid bin (or maybe tests) directory where the "parse.js" and "parserTests.js" files are, run  and.

6) If you're having troubles getting Visual Editor working, check that Parsoid works with your version of MediaWiki using the compatibility table located at: Parsoid/JS.

- Run  in the command prompt to find your Parsoid version.

- The MediaWiki and Visual Editor versions can be found at " https://your-mediawiki-server/index.php?title=Special:Version "

Invalid Domain Error
This error likely means there is an issue with the Parsoid configuration file. Some items to check about the configuration file are:
 * Has the Parsoid service been restarted? Are there any errors in the Parsoid log file?
 * Is the configuration file being read? Try putting errors in the file then restart the service and check the log to see that it saw those errors. <-- where is log file/what's it called? Try: ps aux | grep -i parsoid.log -->
 * Is there an error in the configuration section for that domain? For example, "#- # This is the only required parameter," would need the first hash removed in order for for the mwApi section to be read.

Other things to check
Alternatively and similarly, you can set up your webserver to listen on another port, that is not open on your firewall, thus it can be standard http without SSL, therefore be accessed by Parsoid.
 * If your MediaWiki is private, then you need to set up VisualEditor to forward the cookie to Parsoid. See the VisualEditor instructions for this case.
 * If you enabled cookie forwarding, but Parsoid logs  (causes VisualEditor to 'load' indefinitely) when accessing a page, you may want to make sure you included the   in your config, as documented in the VE instructions.
 * If your MediaWiki runs via SSL, make sure that your Parsoid server can access your MediaWiki without certificate errors. In other words; make sure that the certificate is valid and added to the certificate storage on your Parsoid-running system.
 * Parsoid config.yaml is indentation space sensitive. Watch for correct space and placement of dashes when adding more than one wiki.
 * Debian package version of Parsoid stores its logs in.
 * You might also want to check the Troubleshooting section of the Extension:VisualEditor page.

VisualEditor 1.27: Image alignment causes VisualEditor to not load in REL1_27
$wgUrlProtocols = array(           '//' );
 * Check if your LocalSettings.php have '//' in the $wgUrlProtocols
 * If it is missing, add the '//', save the LocalSettings.php, and restart the parsoid server
 * Missing the '//' will cause Visual Editor to hang at 100% blue bar on page with image

SELINUX ERROR "Error loading data from server: no_vrs: The VirtualRESTService"
This error occurs usually on CENTOS 6 / 7 servers running SELINUX. In order to resolve this problem please disable SELINUX. How to disable SELINUX

Parsoid 0.9.0 update brings 406 Not Acceptable docserver error in VisualEditor REL_30 on Mediawiki 1.30
Full article

You can change the config file instead of Parsoid code: edit /etc/mediawiki/parsoid/config.yaml and add strictAcceptCheck: false at the same level as "userAgent" in the beginning, i.e. just under "conf". Example:

Intermittent or occasional missing images after clicking Edit for Visual Editor
With some very awesome help from #mediawiki-parsoid on IRC I've been able to resolve this error through modifications in  for Parsoid for my installation.

The intermittent showing of images is suspected to be due to simultaneous shell sessions for the thumbnail resizing running out of memory with the default settings.

The fix is to force them to be carried out serially and to use batching. We did two things:


 * 1) Use the ParsoidBatchAPI extension
 * 2) In the   set:    and   underneath the follow YAML keys:




 * }

Error loading data from server: apierror-visualeditor-docserver-http-error: (curl error: 7) Couldn't connect to server.

 * Use the netstat command to verify that parsoid is listening on the desired port
 * Use curl manually on the command line to try to connect to the parsoid api
 * Check to make sure that there are no firewalls that would prevent the connection
 * Verify that SELinux or other sandboxing techniques on your system do not prevent MediaWiki from making networking connections or parsoid from receiving them.
 * Check the parasoid log file (ie. /var/log/parsoid/parsoid.log)

/usr/bin/nodejs: not found in log file
If on Debian, a recent update may have deleted the /usr/bin/nodejs symlink.


 * Replace "nodejs" with "node" in /etc/init.d/parsoid
 * sudo systemctl daemon-reload, sudo service parsoid restart