NU refinement in v5.0.2

After upgrading to cryoSPARC v5, NU refinement completes successfully with the settings listed below:

However, when switching to the following configuration:

the job crashes near the final iteration and returns the following error:

> Feb 26, 2026, 7:16:59 PM

Traceback (most recent call last):
File “cli/run.py”, line 106, in cli.run.run_job
File “cli/run.py”, line 211, in cli.run.run_job_function
File “compute/jobs/refine/run.py”, line 604, in compute.jobs.refine.run.run_homo_refine
File “compute/jobs/refine/run.py”, line 605, in compute.jobs.refine.run.run_homo_refine
File “compute/jobs/ctf_refinement/run.py”, line 436, in compute.jobs.ctf_refinement.run.full_ctf_refine
File “/home/spuser/Downloads/cryosparc/cryosparc_worker/.pixi/envs/worker/lib/python3.12/site-packages/numpy/linalg/linalg.py”, line 409, in solve
r = gufunc(a, b, signature=signature, extobj=extobj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/spuser/Downloads/cryosparc/cryosparc_worker/.pixi/envs/worker/lib/python3.12/site-packages/numpy/linalg/linalg.py”, line 112, in _raise_linalgerror_singular
raise LinAlgError(“Singular matrix”)
numpy.linalg.LinAlgError: Singular matrix

How can I solve this problem?

I would recommend not running all Global CTF refinements during a 3D refinement run (whether homogeneous or non-uniform).

Check through previous iterations to see whether spherical aberration or tetrafoil have been drifting off a long way.

If you only enable tetrafoil, or aniso mag, does it complete successfully?

Thank you for your response. These settings were working properly before the upgrade, and the errors only started occurring after updating. I’m not sure what might be causing this issue.

Additionally, I tried turning on anisotropic magnification refinement alone, and the job completed successfully. However, the resolution of the output map was noticeably worse.

I’m curious about Global CTF parameters, although it may not be related.

Also check dmesg as soon as the error hits to see whether there are any GPU related errors.

Hi @Songdf ,

Are you able to share the full job reports from all of:

  • The previously successful (pre-v5) NU refine
  • The v5 NU refine that crashed
  • The job in which you:

    turned on anisotropic magnification refinement alone

Best,
Michael

Hi @mmclean ,

I have sent an email to [email address redacted]. Thanks for your support.

Thanks @Songdf. We received an email with the job logs. Please can you also send the job reports, which can be downloaded as zip files that include the job log, event log, job document and other information.

Hi @wtempel ,

After attempting to download the job reports, the CryoSPARC web interface becomes inaccessible. I have to restart the instance to recover it, but repeating the same operation consistently causes it to crash again.

@Songdf What browser (with version number) do you use on which OS?

Hi @wtempel , I tried in Microsoft Edge v145.0.3800.97 and chrome (unknown version) on Windows 11 Ver. 24H2 (OS Build 26100.6584) to download the job reports, and both caused cryoSPARC web interface to crash.

@Songdf Does the download of the job report fail even when the Include event log images option is disabled?

@wtempel Yes, the Include event log images option is always disabled as default.

@Songdf We would like to understand how the attempt to download a job report leads to a crash of the web interface. CryoSPARC instance logs may include some hints. Please can you run the command
cryosparcm snaplogs and send us the resulting tgz file to the same email address where you also sent the job logs. Please also include in the email a link to this forum topic.

@wtempel Because your email system reject .tgz files, I have compressed it again into a .zip file and sent it.

We took a note of this issue.

In the mean time, the information can be obtained on the command line on the CryoSPARC master server with these commands:

# create and move to a temporary dir
cd $(mktemp -d)
pwd # note path for file retrieval and, later, removal
project_uid="P99" # replace with actual ID
job_uid="J199" # replace ID of NU refine job
( # begin command block
cryosparcm cli "api.jobs.find_one('$project_uid', '$job_uid')"
cryosparcm job log $project_uid $job_uid
cryosparcm job events $project_uid $job_uid
) > ${project_uid}_${job_uid}_info.txt
gzip ${project_uid}_${job_uid}_info.txt

Please retrieve the *_info.txt.gz file from the temporary directory and email it to us, along with a reference to this forum topic.