Sonos – suddenly unreliable

We’ve had our Sonos system, connected via wifi, for 5+ years and it’s been rock solid until late January. Suddenly, through no changes to our wifi (router, router firmware, or connected devices) or Sonos system, it started being completely unreliable. This seems to have coincided with the S2 v14 release on 2022-01-25 but that could have been coincidence.

Examples of problems:

  • Speakers would disappear from the controllers (macOS & Android apps).
  • Speakers would stop playing but show as playing in the controllers.
  • Speakers would be playing but show as stopped playing in the controllers.
  • Speakers would not respond to play/stop input from the controllers.
  • Different controllers would show different speakers available.

I did the usual things of restarting the wireless router & restarting the speakers. At the recommendation of Sonos support I changed the wireless channel on my router. All of these worked for 30 or so minutes and then things went sideways again.

Finally, fed up with it all, we plugged a speaker directly into the router instead of having it connect over the wireless thus forming its own separate wireless network. Everything has worked perfectly since then.

This isn’t exactly convenient given where the wireless router is, but our Sonos system is once again functional instead of being a collection of 6 very expensive paperweights.

MediaWiki VisualEditor: slashes and namespaces

Recently I upgraded the wiki at Distributed Proofreaders to the MediaWiki 1.35 LTS release. This comes with the fancy new VisualEditor which should be great for our users who already deal with phpBB markup in the forums and our own custom markup for project formatting.

Setting up the VisualEditor was a bit of a head-scratcher in a couple of ways and hopefully this helps others who encounter similar problems.

Error contacting the Parsoid/RESTBase server (HTTP 404)

This one frustrated me for quite some time. Everything pointed to setting

AllowEncodedSlashes NoDecode

in our Apache config, but that wasn’t working for me. For reasons I don’t understand, I needed to include this in both the :80 and :443 VirtualHost sections, not just the :443 which was serving all traffic.

Error contacting the Parsoid/RESTBase server (HTTP 500)

This was thankfully pretty obvious by looking in the php_errors log. As the VisualEditor Troubleshooting section calls out, our $wgTmpDirectory had the wrong write permissions.

Enabling for Namespaces

The documentation says that to change the namespaces that the VisualEditor will be used on, you use the English canonical names. To get this to work, we needed to use the namespace constants instead. Note that the MW code will include all content namespaces as enabled by default so you only need to include those if you want to disable them.

$wgVisualEditorAvailableNamespaces = [
// includes Content namespaces by default (Main)
NS_PROJECT => true,
NS_PROJECT_TALK => true,
NS_TALK => true,
NS_USER_TALK => true,
];