Overview
When users try to send an email or ticket response in Kayako Classic, they are seeing the following error:
Router: http://www.yourdomain.com/console/index.php?/Parser/Parse/Index
file_put_contents(./__swift/cache/classpath.cache.d136.php):
failed to open stream: Permission denied (./vendor/dwoo/dwoo/lib/Dwoo/Loader.php:115)
This article provides information on how to fix the issue.
Information
If you are using an older version of Kayako Classic and you are experiencing this issue, we strongly recommend upgrading to the latest version.
To check the latest version released, follow these steps:
- Log in to my.kayako.com using your registered email address and password.
- From the My Order tab, click the drop-down arrow to see the build version.
- If the build version that is shown here (i.e., 4.93.19) is higher than your current version, then you may want to upgrade to this version. To check the version of your Kayako Classic installation, please see the instructions provided in the KB article Identifying a Kayako Classic Version.
To Upgrade Kayako Classic:
- For Kayako Classic (Download), to upgrade your instance, please visit the Upgrading or Downgrading Your Kayako Classic Download article for guidance.
- For Kayako Classic (OnDemand), please contact our support team by clicking the Submit a ticket button at the top of this page. We will facilitate the upgrade of your helpdesk in the backend.
IMPORTANT REMINDER:
If you are using Kayako Classic Download, rebuilding the helpdesk cache after an upgrade is a must!
To make sure your helpdesk isn't hanging onto any outdated data that could interfere with things, you'll want to rebuild your cache.
- On your web server, go to the '__swift/cache/' directory and delete everything.
NOTE: These are temp files and will be replaced as soon as you complete step 2, below. - In the Kayako Classic admin control panel, click Diagnostics and then Rebuild Cache in the sidebar.
If the issue persists after rebuilding the cache, delete the entire 'cache' folder from the '__swift/' directory and follow step 2 above.
Alternative root cause and solution
The Dwoo engine expects the user running the Web\PHP server to be the owner of the files in the __switch\cache\
directory. If Postfix is used to configure email piping, it will create files as "nobody" by default, and Kayako Classic won't be able to use them.
One of the solutions would be to configure "main.cf" with the following:
default_privs=nginx
(where "nginx" is to be replaced by the relevant user)