Curl: (43) A libcurl function was given a bad argument

Hi Katherine,

Thank you for the update.

I encountered an error while attempting to update CryoSPARC to version v4.7.0. The command and output are shown below:

$ cryosparcm update --version=v4.7.0
CryoSPARC current version v4.6.0
update starting on Tue Jun 3 21:27:03 EDT 2025

=============================
Updating to version v4.7.0.

Removing previous downloads…
Downloading master update…
curl: (43) A libcurl function was given a bad argument

Would you mind advising on how to resolve this issue? Thanks!

Best regards,
Shuhui

@Shuhui05 Please can you post the output of this command (run on your CryoSPARC master computer)

curl -v -L "https://get.cryosparc.com/download/master-v4.7.0/" > /dev/null

Hi Wtempel,

It return as below.

$ curl -v -L “https://get.cryosparc.com/download/master-v4.7.0/” > /dev/null
curl: (43) A libcurl function was given a bad argument

Thanks @Shuhui05 . What are the outputs of the commands

which curl
head -n 1 /etc/*release
ldd $(which curl)

?

Hi all,
thanks for sharing

I got a similar issue when trying to update the system.
At the command cryosparcm update (which worked since now) the output is:

CryoSPARC current version v4.7.1
          update starting on Fri Aug 29 14:41:58 CEST 2025

No version specified - updating to latest version.

And it stops. Apparently I also have the same curl issue (43).
I reinstalled several curl versions as sudo but nothing changed.

This is the output of the command

head -n 1 /etc/*release

==> /etc/centos-release <==
Rocky Linux release 8.10 (Green Obsidian)

==> /etc/os-release <==
NAME="Rocky Linux"

==> /etc/redhat-release <==
Rocky Linux release 8.10 (Green Obsidian)

==> /etc/rocky-release <==
Rocky Linux release 8.10 (Green Obsidian)

==> /etc/system-release <==
Rocky Linux release 8.10 (Green Obsidian)

ldd $(which curl)

linux-vdso.so.1 (0x00007ffe005e5000)
	libcurl.so.4 => ./lib/libcurl.so.4 (0x00007ff57915f000)
	libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007ff578b31000)
	libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007ff578646000)
	libz.so.1 => ./lib/libz.so.1 (0x00007ff57912a000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff578426000)
	libc.so.6 => /lib64/libc.so.6 (0x00007ff578050000)
	libnghttp2.so.14 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/./libnghttp2.so.14 (0x00007ff5790fc000)
	libssh2.so.1 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/./libssh2.so.1 (0x00007ff5790b7000)
	libssl.so.3 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/./libssl.so.3 (0x00007ff577f60000)
	libcrypto.so.3 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/./libcrypto.so.3 (0x00007ff577a1d000)
	libgssapi_krb5.so.2 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/./libgssapi_krb5.so.2 (0x00007ff579062000)
	libzstd.so.1 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/./libzstd.so.1 (0x00007ff577909000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007ff577705000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff578fff000)
	librt.so.1 => /lib64/librt.so.1 (0x00007ff5774fd000)
	libkrb5.so.3 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/././libkrb5.so.3 (0x00007ff577427000)
	libk5crypto.so.3 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/././libk5crypto.so.3 (0x00007ff579048000)
	libcom_err.so.3 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/././libcom_err.so.3 (0x00007ff579042000)
	libkrb5support.so.0 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/././libkrb5support.so.0 (0x00007ff579034000)
	libkeyutils.so.1 => /home/cryosparc_user/software/cryosparc/cryosparc_master/./lib/././libkeyutils.so.1 (0x00007ff577420000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff577208000)

any idea?
thanks in advance!
best
Luigi

Sorry, just realized that is seems updated to v4.7.1, although I’m not sure of this. I tried to manually update it by downloading the master and worker folders and update via --skip-download.
In any case would be nice to have the standard cryosparcm update back in function.

Welcome to the forum @Luigi.

On rocky-8.10, I expect that the /usr/bin/curl command included in the Rocky Linux “official” curl (-7.61.1 as of August 2025) package would do the job, and that
ldd /usr/bin/curl would mostly show libraries in the /lib64/ directory.
The ldd output you posted suggests that either

  • the /usr/bin/curl installation is broken on your system
  • or a different curl binary is being used. You may try the command
    cryosparcm call which curl
    
    to find out.
  • or your configured user environment is in an otherwise incompatible state. What are the outputs of the commands:
    env | grep PATH
    cryosparcm call /usr/bin/env | grep PATH
    

thanks for the super fast reply @wtempel.

this is what I was suspecting.
here the outputs:

cryosparcm call which curl
/bin/curl

thanks for helping

Hmm. On rocky linux, I’d expect

# ls -l /bin
lrwxrwxrwx 1 root root 7 Oct 11  2021 /bin -> usr/bin

but I’d also expect /usr/bin/ to precede /bin/ in the $PATH.
If you are still wondering about how to fix the issue, please can you post the outputs of the commands

dnf whatprovides "*bin/curl"
sha256sum /usr/bin/curl
sha256sum /bin/curl
ls -l /bin/curl
env | grep PATH
cryosparcm call /usr/bin/env | grep PATH

Do you know with which commands /bin/curl was installed on your system?

Hi @wtempel,
after some checks I figured out that the cryosparc account has user specific environments and startup programs in a separate /.bashrc_profile. Now I modified it to have curl pointing to usr/local/bin. Curl itself seems to work, but when I launch cryosparcm update (with list or check) gives me empty answer as before. Bah.
i need to recall which command I used to have the error 43 but I think it’s still there.
Will keep you posted