Skip to content

[BUG] certbot-dns-azure fails with azure-mgmt-dns==9.0.0 #595

@michelkeus

Description

@michelkeus

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

In the recent builds the provided PIP package "certbot-dns-azure" is installed without constraints. The source package for this plugin is not updated for use with the supporting package "azure-mgmt-dns" version 9.0.0.

The DNS provider package needs to be pinned to version 8.2.0 for it to work.

This is related to what is stated in change log for the supporting package:

Breaking Changes
This package now only targets the latest Api-Version available on Azure and removes APIs of other Api-Version. After this change, the package can have much smaller size. If your application requires a specific and non-latest Api-Version, it's recommended to pin this package to the previous released version; If your application always only use latest Api-Version, please ignore this change.

The new supporting package no longer requires the specification of the Api-Version hence it requires one less parameter.

This issue can be cross-referenced to:

Expected Behavior

No response

Steps To Reproduce

Use current builds where the build process the package is installed as:

pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.22/ \ certbot==${CERTBOT_VERSION} \ certbot-dns-acmedns \ certbot-dns-aliyun \ certbot-dns-azure \ certbot-dns-bunny \

This will likely be any build after 2025-07-14.

Issue is likely to be resolved by explicitly installing the package with the version locked to 8.2.0 before the "certbot-dns-azure" package:
pip install azure-mgmt-dns==8.2.0

According to the source this version still satisfies the installation requirement.

Environment

OS: Ubuntu 24.04.3 LTS aarch64
How docker service was installed: distro's packagemanager

CPU architecture

arm64

Docker creation

swag:
    image: lscr.io/linuxserver/swag:latest
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Amsterdam
      - URL=example.com # replaced from my domain
      - VALIDATION=dns
      - SUBDOMAINS=code-server,smokeping
      - DNSPLUGIN=azure
      - PROPAGATION=900
      - EMAIL=my-email-address # replaced from my email
      - ONLY_SUBDOMAINS=true
      - EXTRA_DOMAINS=
      - STAGING=false
    volumes:
      - /docker-data/docker-swag/config:/config
    ports:
      - 443:443
      - 80:80 #optional
    restart: unless-stopped

Container logs

The error it generates is:
Encountered exception during recovery: TypeError: DnsManagementClient.__init__() takes from 3 to 4 positional arguments but 5 were given
An unexpected error occurred:
TypeError: DnsManagementClient.__init__() takes from 3 to 4 positional arguments but 5 were given
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /home/runner/.cache/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
Error: Process completed with exit code 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions