crowdsec icon indicating copy to clipboard operation
crowdsec copied to clipboard

Docker client version 1.52 is too new. Maximum supported API version is 1.43

Open Wummeke opened this issue 1 month ago • 5 comments

What happened?

I'm running Crowdsec on my Synology NAS. Synology is notoriously behind on keeping their docker implementation up to date. Last night, my Crowdsec container was updated failed to start properly.

It turns out it's because I have a docker datasource and the client API in Crowdsec was updated. The error in the Corwdsec logs says it clearly:

crowdsec init: while loading acquisition config: configuring datasource of type docker from failed to get docker info: Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.43"

Unfortunately, I can't update my docker installation (thanks Synology!) Is there a way to let Crowdsec use an older version of the Docker client API?

What did you expect to happen?

.

How can we reproduce it (as minimally and precisely as possible)?

Install Crowdsec on a Synology NAS and configure a docker datasource

Anything else we need to know?

No response

Crowdsec version

$ cscli version
version: v1.7.4-db3efdbf
Codename: alphaga
BuildDate: 2025-12-09_09:08:11
GoVersion: 1.25.5
Platform: docker
libre2: C++
User-Agent: crowdsec/v1.7.4-db3efdbf-docker
Constraint_parser: >= 1.0, <= 3.0
Constraint_scenario: >= 1.0, <= 3.0
Constraint_api: v1
Constraint_acquis: >= 1.0, < 2.0
Built-in optional components: cscli_setup, datasource_appsec, datasource_cloudwatch, datasource_docker, datasource_file, datasource_http, datasource_journalctl, datasource_k8s-audit, datasource_kafka, datasource_kinesis, datasource_loki, datasource_s3, datasource_syslog, datasource_victorialogs, datasource_wineventlog, db_mysql, db_postgres, db_sqlite

OS version

Linux SYNOLOGY 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64 GNU/Linux synology_apollolake_218+

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here

Enabled collections and parsers

$ cscli hub list -o raw
# paste output here

Acquisition config

```console # On Linux: $ cat /etc/crowdsec/acquis.yaml /etc/crowdsec/acquis.d/*

source: docker container_name:

  • authentik-server
  • authentik-worker labels: type: authentik

On Windows:

C:> Get-Content C:\ProgramData\CrowdSec\config\acquis.yaml

paste output here

Config show

$ cscli config show
# paste output here

Prometheus metrics

$ cscli metrics
# paste output here

Related custom configs versions (if applicable) : notification plugins, custom scenarios, parsers etc.

Wummeke avatar Dec 09 '25 19:12 Wummeke

@Wummeke: Thanks for opening an issue, it is currently awaiting triage.

In the meantime, you can:

  1. Check Crowdsec Documentation to see if your issue can be self resolved.
  2. You can also join our Discord.
  3. Check Releases to make sure your agent is on the latest version.
Details

I am a bot created to help the crowdsecurity developers manage community feedback and contributions. You can check out my manifest file to understand my behavior and what I can do. If you want to use this for your project, you can check out the BirthdayResearch/oss-governance-bot repository.

github-actions[bot] avatar Dec 09 '25 19:12 github-actions[bot]

We can bypass this by using auto negotiation

https://github.com/moby/moby/blob/v28.5.2/client%2Foptions.go#L221-L226

However, we most likely won't have a patch live before 2026, if you can set environment variables on the docker daemon you can bypass this but I need to find the environment like:

https://github.com/traefik/traefik/issues/12253#issuecomment-3527294626

LaurenceJJones avatar Dec 09 '25 20:12 LaurenceJJones

hmm seems we already do this, are you deploying crowdsec as a container?

as a workaround for now could you set an environment variable for crowdsec if container or systemd to define the version

 DOCKER_API_VERSION=1.43

this should force the docker client created to downgrade automatically before trying to negotiate the version.

LaurenceJJones avatar Dec 09 '25 20:12 LaurenceJJones

Yes, I run Crowdsec as a container in docker. Will try the environment variable you suggested asap (but probably not before Friday I'm afraid).

Wummeke avatar Dec 09 '25 21:12 Wummeke

I have also the same problem on docker

FATAL crowdsec init: while loading acquisition config: configuring datasource of type docker from /etc/crowdsec/acquis.yaml (position 10): failed to get docker info: Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.43 

Adding suggested ' DOCKER_API_VERSION=1.43' env variable fixed the problem

lluisd avatar Dec 10 '25 10:12 lluisd

@LaurenceJJones adding the docker_API_version environmental variable did the trick for me too. Thanks!

Wummeke avatar Dec 13 '25 15:12 Wummeke