<?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[surfer put crashes with --delete option and Error: ENOENT: no such file or directory]]></title><description><![CDATA[<p dir="auto">Hey there! I ran into a weird issue earlier. There is this deploy pipeline which uses<br />
<code>+ surfer put --token surfertoken --delete --server example.com ./dist/* /</code><br />
to put files on a surfer instance. Usually it does that:</p>
<pre><code>Using server https://example.com
Removing /file1.js
Removing /file2.js
Uploading /200.html -&gt; /200.html
Uploading /index.html -&gt; /index.html
Done
</code></pre>
<p dir="auto">But recently every other deployment "crashes" (it doesn't throw an error code, it just stops during the delete operation like this:</p>
<pre><code>Using server https://example.com
Removing /de/projects
Removing /de/projects/index.html
Removing /article
</code></pre>
<p dir="auto">I've checked the surfer logs and could find this:</p>
<pre><code>2023-03-20T05:42:23.000Z [0mDELETE /api/files/%2F123.js?access_token=xxx [32m200[0m 38.077 ms - 14[0m
2023-03-20T05:42:24.000Z [Error: ENOENT: no such file or directory, stat '/app/data/public/article'] {
2023-03-20T05:42:24.000Z errno: [33m-2[39m,
2023-03-20T05:42:24.000Z code: [32m'ENOENT'[39m,
2023-03-20T05:42:24.000Z syscall: [32m'stat'[39m,
2023-03-20T05:42:24.000Z path: [32m'/app/data/public/article'[39m
2023-03-20T05:42:24.000Z }
2023-03-20T05:42:24.000Z [Error: ENOENT: no such file or directory, stat '/app/data/public/current'] {
2023-03-20T05:42:24.000Z errno: [33m-2[39m,
2023-03-20T05:42:24.000Z code: [32m'ENOENT'[39m,
2023-03-20T05:42:24.000Z syscall: [32m'stat'[39m,
2023-03-20T05:42:24.000Z path: [32m'/app/data/public/current'[39m
2023-03-20T05:42:24.000Z }
2023-03-20T05:42:24.000Z HttpError: Unable to remove
2023-03-20T05:42:24.000Z at [90m/app/code/[39msrc/files.js:258:25 {
2023-03-20T05:42:24.000Z status: [33m500[39m,
2023-03-20T05:42:24.000Z internalError: [1mnull[22m,
2023-03-20T05:42:24.000Z details: [1mnull[22m
2023-03-20T05:42:24.000Z }
2023-03-20T05:42:24.000Z HttpError: Unable to remove
2023-03-20T05:42:24.000Z at [90m/app/code/[39msrc/files.js:258:25 {
2023-03-20T05:42:24.000Z status: [33m500[39m,
2023-03-20T05:42:24.000Z internalError: [1mnull[22m,
2023-03-20T05:42:24.000Z details: [1mnull[22m
2023-03-20T05:42:24.000Z }
</code></pre>
<p dir="auto">Some more files get deleted, but the operation gets aborted way too early, which means the new files never get uploaded. This leaves the site incomplete and in a broken state, which obviously is not great. Any idea what's going on there? If the build process is triggered a second time and only few files need deleting, it mostly works. Also, is there a way to upload the new files before deleting the obsolete ones?</p>
]]></description><link>https://forum.cloudron.io/topic/8851/surfer-put-crashes-with-delete-option-and-error-enoent-no-such-file-or-directory</link><generator>RSS for Node</generator><lastBuildDate>Wed, 13 May 2026 04:07:38 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/8851.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Mar 2023 10:53:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Tue, 11 Apr 2023 11:53:38 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/msbt" aria-label="Profile: msbt">@<bdi>msbt</bdi></a> alright, then maybe you can give me access to your Cloudron hosting the second test surfer instance, to debug this?</p>
<p dir="auto">If so, please send a mail to <a href="mailto:support@cloudron.io" target="_blank" rel="noopener noreferrer nofollow ugc">support@cloudron.io</a> with your dashboard domain and remote SSH enabled. Also let me know how to exactly reproduce this.</p>
]]></description><link>https://forum.cloudron.io/post/64718</link><guid isPermaLink="true">https://forum.cloudron.io/post/64718</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Tue, 11 Apr 2023 11:53:38 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Tue, 11 Apr 2023 11:14:42 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a> yes, just tried without the pipeline and it also crashes almost every other time. Also tried with a different surfer instance, same issue. Running out of ideas <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f615.png?v=fed68e33a46" class="not-responsive emoji emoji-android emoji--confused" style="height:23px;width:auto;vertical-align:middle" title=":/" alt="😕" /></p>
]]></description><link>https://forum.cloudron.io/post/64716</link><guid isPermaLink="true">https://forum.cloudron.io/post/64716</guid><dc:creator><![CDATA[msbt]]></dc:creator><pubDate>Tue, 11 Apr 2023 11:14:42 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Thu, 06 Apr 2023 12:16:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/msbt" aria-label="Profile: msbt">@<bdi>msbt</bdi></a> can you reproduce this outside the ci pipeline, like from your laptop or so?</p>
]]></description><link>https://forum.cloudron.io/post/64502</link><guid isPermaLink="true">https://forum.cloudron.io/post/64502</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Thu, 06 Apr 2023 12:16:02 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Wed, 05 Apr 2023 09:30:59 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a> I don't know how to debug this, the pipeline is only run once and there doesn't seem to be a second instance deleting the files. You're welcome to hop on and check the logs <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=fed68e33a46" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://forum.cloudron.io/post/64400</link><guid isPermaLink="true">https://forum.cloudron.io/post/64400</guid><dc:creator><![CDATA[msbt]]></dc:creator><pubDate>Wed, 05 Apr 2023 09:30:59 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Wed, 05 Apr 2023 09:25:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/msbt" aria-label="Profile: msbt">@<bdi>msbt</bdi></a> so I could add the "contine on error" mode, however I do wonder why files are deleted on the remote then. This suggests something else is operating on the files there so I am not sure a contine on error does not incur other races here and result in unexpected status.</p>
]]></description><link>https://forum.cloudron.io/post/64398</link><guid isPermaLink="true">https://forum.cloudron.io/post/64398</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Wed, 05 Apr 2023 09:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Tue, 04 Apr 2023 17:21:24 GMT]]></title><description><![CDATA[<p dir="auto">Ok the problem is not solved after all, I thought it was, having a dedicated VPS for the runners, but it still fails every other time that it's being triggered.</p>
<p dir="auto">The way I see it, there are a few possible paths to go down:</p>
<ol>
<li>add a flag to not throw an error/ignore when a file cannot be removed because it's no longer there so the rest of the deployment can continue</li>
<li>transfer all files first, then compare and remove the files which are on target but not on source</li>
<li>add a flag to delete * on target before uploading new files</li>
</ol>
<p dir="auto">Any other suggestion is welcome, but I'm running out of ideas tbh</p>
]]></description><link>https://forum.cloudron.io/post/64348</link><guid isPermaLink="true">https://forum.cloudron.io/post/64348</guid><dc:creator><![CDATA[msbt]]></dc:creator><pubDate>Tue, 04 Apr 2023 17:21:24 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Wed, 29 Mar 2023 06:48:42 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/girish" aria-label="Profile: girish">@<bdi>girish</bdi></a> in this case it's 1590 files</p>
]]></description><link>https://forum.cloudron.io/post/63910</link><guid isPermaLink="true">https://forum.cloudron.io/post/63910</guid><dc:creator><![CDATA[msbt]]></dc:creator><pubDate>Wed, 29 Mar 2023 06:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Tue, 28 Mar 2023 09:07:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/msbt" aria-label="Profile: msbt">@<bdi>msbt</bdi></a> How many files are we talking about here? Can you <code>cd /app/data/public</code> and then <code>find . -type f | wc -l</code> ?</p>
]]></description><link>https://forum.cloudron.io/post/63842</link><guid isPermaLink="true">https://forum.cloudron.io/post/63842</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Tue, 28 Mar 2023 09:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Thu, 23 Mar 2023 13:07:30 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a> ok I think the issue for this was limited system ressources and the server just couldn't cope with it. It's odd that Drone (using the package frrom <a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a>) didn't recognize the surfer error as a problem in the pipeline but thought it was successful.</p>
<p dir="auto">Either way, this leaves still the problem with larger deployments, when the removing of the files takes 1-2 minutes, you have more or less a downtime in between deployments, because the new/changed files will only be uploaded afterwards.</p>
<p dir="auto">Idea for a solution: Be able to change the path to <code>/public</code> in something like <code>/release/&lt;timestamp&gt;/</code> via symlink, so one could deploy the files and when they're all up, change the symlink to the latest one and keep the last 3 deployments as backups. Is that something that could be implemented? Or how is everyone else solving that problem?</p>
]]></description><link>https://forum.cloudron.io/post/63658</link><guid isPermaLink="true">https://forum.cloudron.io/post/63658</guid><dc:creator><![CDATA[msbt]]></dc:creator><pubDate>Thu, 23 Mar 2023 13:07:30 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Tue, 21 Mar 2023 11:33:32 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/msbt" aria-label="Profile: msbt">@<bdi>msbt</bdi></a> there is no cli parameter currently to add more verbose output. You can try to run it with <code>DEBUG=*</code> though, which various node modules support and it might give some more hints.</p>
]]></description><link>https://forum.cloudron.io/post/63545</link><guid isPermaLink="true">https://forum.cloudron.io/post/63545</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Tue, 21 Mar 2023 11:33:32 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Mon, 20 Mar 2023 22:36:24 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nebulon" aria-label="Profile: nebulon">@<bdi>nebulon</bdi></a> thanks for the reply! I don't see a second process running in parallel, but I'll do a bit of investigating and get back to you if I find something. Is there a debug parameter I could add to see more from the output?</p>
]]></description><link>https://forum.cloudron.io/post/63531</link><guid isPermaLink="true">https://forum.cloudron.io/post/63531</guid><dc:creator><![CDATA[msbt]]></dc:creator><pubDate>Mon, 20 Mar 2023 22:36:24 GMT</pubDate></item><item><title><![CDATA[Reply to surfer put crashes with --delete option and Error: ENOENT: no such file or directory on Mon, 20 Mar 2023 11:16:16 GMT]]></title><description><![CDATA[<p dir="auto">The way it works is, that surfer cli will first list remote and local file trees, then calculate the diff and then issue command to the remote server. The error here most likely indicates, that between listing file trees and issuing the commands, the remote filesystem has changed (the folders/files in question are already removed)</p>
<p dir="auto">So is it possible that there are two processes running in parallel here somehow? Maybe the pipeline is run twice at the same time?</p>
]]></description><link>https://forum.cloudron.io/post/63494</link><guid isPermaLink="true">https://forum.cloudron.io/post/63494</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Mon, 20 Mar 2023 11:16:16 GMT</pubDate></item></channel></rss>