# All the files are back. Why is ComfyUI still red, and when is a move actually finished?

> Count two things separately: the files coming back, each one checked, and the app working on the new machine. A complete set of files with red nodes is not a finished move. It is finished when the same custom nodes load as on the old machine and your workflow produces output again.

Canonical page: https://renest.ai/answers/when-is-a-move-finished

<h2 id="two-things">Files back and app working are two different results</h2>

<p>A move has two separate results, and only the second one means you can work. The first
is that every file arrived intact: models, custom nodes, workflows. The second is that the
app starts on the new machine, the same custom nodes load, and a workflow runs to output.
The first can be complete while the second fails. Folding them into one "it worked" hides
exactly the failures you will hit later.</p>

<h2 id="why-red">Why ComfyUI can be red with every file in place</h2>

<p>Because some of what a working setup needs is not in the files. Three things sit outside
them:</p>

<ul>
  <li><strong>Python packages.</strong> They have to be installed for this machine. A copied
  virtual environment often breaks on a different machine.</li>
  <li><strong>System libraries.</strong> For example <code>libGL.so.1</code>. They belong to
  the operating system, so a custom node can fail to import on a machine that lacks them.
  See <a href="/answers/nodes-missing-after-move">Custom nodes missing or IMPORT
  FAILED</a>.</li>
  <li><strong>The machine itself.</strong> The GPU generation, the driver and the CPU's
  instruction sets. See <a href="/answers/errors-after-gpu-change">Errors after changing
  GPU</a>.</li>
</ul>

<p>ComfyUI keeps starting when a custom node fails to load, so the app opening proves
little. The cases we hit ourselves, every file verified and the environment still dead, are
written up in <a href="/blog/verified-files-not-a-working-environment">Every file verified,
environment still dead</a>.</p>

<h2 id="check-yourself">How to check a move yourself</h2>

<ol>
  <li>Start ComfyUI and read the start-up log. No custom node should be marked
  <code>(IMPORT FAILED)</code>. Compare the list of loaded packs with the old machine's.</li>
  <li>Open a workflow you know worked, with no red nodes and no empty model
  dropdowns.</li>
  <li>Queue it and wait for the output file. Loading the graph is not the test. Running it
  is.</li>
  <li>For a fine-tuning setup, run a short training and check that it writes a trained file
  that isn't empty.</li>
</ol>

<p>Don't expect the new image to match the old one pixel for pixel on a different GPU, even
with the same seed. Why it can differ: <a href="/blog/cpu-vendor-decides-identical-images">Same
GPU, two images</a>.</p>

<h2 id="renest-restore">What a Renest restore checks and reports</h2>

<p>A Renest restore reports the two results separately, step by step, instead of only an
exit code:</p>

<ol>
  <li>It checks the machine before downloading: GPU generation, driver, CPU, disk space,
  and the system libraries the working run loaded.</li>
  <li>It downloads every file and checks each one against its checksum.</li>
  <li>It installs the exact dependency versions the working run used, for this
  machine.</li>
  <li>It starts ComfyUI and reads the start-up log. Any custom node that failed to load
  because a system library is missing is named, with the library, even though the app
  itself came up.</li>
  <li>If the nest records a workflow that produced output, it runs that workflow once and
  reports whether output came out.</li>
</ol>

<p>What the closing lines mean, and how to start the app afterwards:
<a href="/docs/after-restore">After the restore</a>. A line saying the environment
rebuilt but the machine isn't identical is a success; see
<a href="/docs/troubleshooting#different">If a restore stops</a>.</p>

<p>What we promise is the first result: your files and dependencies come back, checked.
Whether the app works on the new machine is something the restore tests and reports each
time, not something we assume.</p>

<p id="proof">Our own test record, failures included, is on the <a href="/proof">Proof page</a>.</p>

<h2 id="not-renest">When Renest isn't the answer</h2>

<ul>
  <li><strong>You moved ComfyUI yourself</strong> and only need to know whether it's done.
  The checklist above works without Renest.</li>
  <li><strong>The setup never worked on the old machine.</strong> There is nothing to
  compare against, and Renest only carries a setup that already worked; see
  <a href="/answers/when-you-dont-need-renest">When you don't need Renest</a>.</li>
</ul>
