If you’ve updated your ICS Calendar installation to version 9.8.0 and received either of these error messages…
…or something similar to…
Fatal error: Uncaught Error: Class ‘R34NoNo’ not found in /wp-content/plugins/ics-calendar/ics-calendar.php on line 89
…or if you received an automated email from your site notifying you of an issue with ICS Calendar, first off, my sincere apologies. I work hard to provide a high quality, reliable plugin and a small error today caused a pretty significant issue in the update process for some ICS Calendar users.
This issue was resolved within about 2 hours, via the 9.8.0.1 update. If your site is already running version 9.8.0.1, or if you have not yet updated to version 9.8.0, you will not encounter this error. If you haven’t updated yet, do not hesitate to update to 9.8.0.1. It is no longer possible to update to the broken 9.8.0 version, and the problem does not exist in 9.8.0.1.
How do I fix my broken site?
First, the bug should only be affecting your ability to log into the site admin; the “front end” of your site should be functioning normally. If you are not able to log into your site admin, and if you have direct file system access, either via FTP or SFTP/SSH, or if your hosting provider gives you file system access through a control panel such as Plesk or cPanel, here’s what you need to do:
First, connect to your server and navigate to the wp-content/plugins
folder and look for the ics-calendar
folder.
Now you can either:
- Delete the entire
ics-calendar
folder (or just move it outside of theplugins
folder), then log into your site admin, navigate to Plugins → Add New, and search for ICS Calendar to reinstall it. You will get version 9.8.0.1 (or later, depending on when you read this), or - Manually download version 9.8.0.1 to your computer, unzip it, and copy the enclosed
ics-calendar.php
file into theics-calendar
folder on your server. This is the only changed file.
So, how did this happen?
ICS Calendar is one of a number of plugins I develop. Last week I reworked some of the install/update code in another of the plugins, No Nonsense. Today while working on version 9.8.0, I copied some of that new code from No Nonsense into ICS Calendar, and then went through it and made the necessary changes to make it work. Unfortunately I missed two spots, and I didn’t catch the issue in testing because as it happens, I also had No Nonsense installed on my test site. Any site that has both plugins installed would not have encountered any problems with the 9.8.0 update. But if you don’t have No Nonsense installed — and most ICS Calendar users don’t — then this error would occur when updating to 9.8.0 from an earlier version. (The problem would not occur on a fresh 9.8.0 installation.)
What will Room 34 do to prevent this from happening again in the future?
Mistakes happen, as much as we try to avoid them. I should have caught this issue before rolling out the update, but a unique set of conditions came together to allow it to slip past my testing process. In particular, this issue is something that would have been difficult to catch prior to the release of the update, but usually after I release an update, I immediately test the update process by running it on a number of my client sites that are using my plugins. But today I got sidetracked with an unrelated theme issue on this site while working on documentation updates, so it wasn’t until I had finished working on that issue that I became aware of this problem, allowing time for more sites to update and get the error.
In short, I will stick to a more structured release and test process, and avoid getting distracted in the middle of the process by unrelated issues!
Thank you for using ICS Calendar, and again, my sincere apologies if today’s glitch caused you any inconvenience.
—Scott