<?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[Community store: apps added after today's ssrf fix never appear in the public listing]]></title><description><![CDATA[<p dir="auto">Since commit <code>09c562f</code> (ssrf protection, deployed today), newly added community apps show under My Apps but their public page returns 404 and they are missing from <code>/api/apps</code>.</p>
<p dir="auto">Probable cause: in <code>downloadIcon</code> in <code>src/apps.js</code>, <code>secureGet(iconUrl)</code> is now wrapped in <code>safe(() =&gt; ...)</code>. A superagent request is a thenable, so <code>safe()</code> awaits it and returns a Promise instead of the request object. The next line then calls <code>request.ok(...)</code>, which throws <code>TypeError: request.ok is not a function</code>. The error propagates out of <code>resolveEntry</code>, and <code>refreshCache</code> skips the app entirely with <code>Skipping community app &lt;title&gt; (&lt;url&gt;): request.ok is not a function</code> in the log.</p>
<p dir="auto">Existing apps are unaffected because their icons are already cached and <code>downloadIcon</code> returns before the broken line. Any app added after the deploy has no cached icon and is dropped from the listing on every refresh.</p>
<p dir="auto">Reproduced locally against the current repo with <code>npm ci</code> and a valid versions file (it passes <code>parseVersions</code> and <code>checkVersionsRequirements</code> cleanly).</p>
<p dir="auto">Suggested fix: build the request in a plain try/catch instead of <code>safe()</code>, for example</p>
<pre><code class="language-js">let request;
try { request = secureGet(iconUrl); } catch { return; }
const [error, response] = await safe(request.ok(() =&gt; true));
</code></pre>
<p dir="auto">Affected example: Nextcloud Talk HPB, added today. <a href="https://ca.cloudron.io/app/nextcloud-talk-hpb" target="_blank" rel="noopener noreferrer nofollow ugc">https://ca.cloudron.io/app/nextcloud-talk-hpb</a> returns 404 while the entry exists in My Apps.</p>
]]></description><link>https://forum.cloudron.io/topic/15758/community-store-apps-added-after-today-s-ssrf-fix-never-appear-in-the-public-listing</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 16:09:01 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15758.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Jul 2026 22:04:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Community store: apps added after today's ssrf fix never appear in the public listing on Fri, 31 Jul 2026 07:12:45 GMT]]></title><description><![CDATA[<p dir="auto">Deployed</p>
]]></description><link>https://forum.cloudron.io/post/127517</link><guid isPermaLink="true">https://forum.cloudron.io/post/127517</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Fri, 31 Jul 2026 07:12:45 GMT</pubDate></item><item><title><![CDATA[Reply to Community store: apps added after today's ssrf fix never appear in the public listing on Fri, 31 Jul 2026 06:14:33 GMT]]></title><description><![CDATA[<p dir="auto">My bad... fixing</p>
]]></description><link>https://forum.cloudron.io/post/127516</link><guid isPermaLink="true">https://forum.cloudron.io/post/127516</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Fri, 31 Jul 2026 06:14:33 GMT</pubDate></item></channel></rss>