<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[EspoCRM 3.0.4+: WebSocket broken because the PHP zmq extension is not loaded on the PHP 8.4 image]]></title><description><![CDATA[<p dir="auto">Hi, after updating EspoCRM to package <code>3.0.4</code> or later (we tested <code>3.0.8</code> / EspoCRM <code>10.0.8</code>), the WebSocket server no longer starts. Packages <code>3.0.3</code> and earlier work fine.<br />
Symptoms (with useWebSocket enabled):</p>
<ul>
<li><code>websocket.php</code> crashes at startup. The EspoCRM log shows: Error: Class "ZMQContext" not found at <code>/app/code/10.0.8/vendor/react/zmq/src/Context.php:37</code></li>
<li>The browser retries /wss every few seconds and gets a 503. The Apache log shows: <code>AH00957: WS: attempt to connect to 127.0.0.1:8080 (127.0.0.1:8080) failed</code></li>
<li>As a result, real-time notifications and VoIP call popups stop working.</li>
</ul>
<p dir="auto">Cause:<br />
The package switched from <code>cloudron/base:5.0.0</code> to <code>cloudron/php-base:8.4</code> in commit<code> 0d5ac2af</code> (7 August).<br />
In the 3.0.8 image, the generic php-zmq package from the sury PPA depends on the build for the newest PHP, so it installs php8.5-zmq (plus about 13 other php8.5-* packages). PHP 8.4's extension_dir is <code>/usr/lib/php/20240924</code>, which has no <a href="http://zmq.so" target="_blank" rel="noopener noreferrer nofollow ugc">zmq.so</a>, so the extension is never loaded. Loading the 8.5 build into PHP 8.4 manually also fails, because of the ABI mismatch.<br />
We also checked the base the package now uses on master, cloudron/php-base:8.4-20260920. It has no zmq package at all, so a 3.0.9 build from the current master would still have no WebSocket.</p>
<p dir="auto">Suggested fix:<br />
Install the version-specific package in the EspoCRM Dockerfile, or in php-base:</p>
<pre><code>apt-get install -y php8.4-zmq
</code></pre>
<p dir="auto">php8.4-zmq (1.1.3-32+ubuntu24.04.1+deb.sury.org+1) is available in the same repository. Pinning to the PHP version, rather than using the php-zmq metapackage, also keeps the next PHP release on sury from breaking it again.<br />
To reproduce:</p>
<pre><code>docker run --rm --platform linux/amd64 --entrypoint /bin/bash cloudron/com.espocrm.cloudronapp:202609090034540000 -c 'php -v | head -1; php -m | grep -i zmq || echo "zmq not loaded"; dpkg -l | grep -i zmq; find / -name zmq.so -not -path "/proc/*" 2&gt;/dev/null'
</code></pre>
<p dir="auto">Workaround for others: stay on 3.0.3 (EspoCRM 10.0.3), or turn off useWebSocket in Administration &gt; Settings so the client falls back to polling.<br />
Thanks!</p>
]]></description><link>https://forum.cloudron.io/topic/16036/espocrm-3.0.4-websocket-broken-because-the-php-zmq-extension-is-not-loaded-on-the-php-8.4-image</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 21:55:12 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/16036.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Sep 2026 12:30:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to EspoCRM 3.0.4+: WebSocket broken because the PHP zmq extension is not loaded on the PHP 8.4 image on Wed, 30 Sep 2026 14:58:08 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/marsupil" aria-label="Profile: marsupil">@<bdi>marsupil</bdi></a><br />
An app update with a fix will be available soon.</p>
]]></description><link>https://forum.cloudron.io/post/130243</link><guid isPermaLink="true">https://forum.cloudron.io/post/130243</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Wed, 30 Sep 2026 14:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to EspoCRM 3.0.4+: WebSocket broken because the PHP zmq extension is not loaded on the PHP 8.4 image on Wed, 30 Sep 2026 12:32:57 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/marsupil" aria-label="Profile: marsupil">@<bdi>marsupil</bdi></a> and welcome to the Cloudron forum</p>
<p dir="auto">Thanks for reporting, I will look into this.</p>
]]></description><link>https://forum.cloudron.io/post/130228</link><guid isPermaLink="true">https://forum.cloudron.io/post/130228</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Wed, 30 Sep 2026 12:32:57 GMT</pubDate></item></channel></rss>