Skip to content

Fix IONOS DNS record creation request format - #1243

Merged
shibayan merged 1 commit into
masterfrom
codex/fix-ionos-record-creation
Aug 8, 2026
Merged

Fix IONOS DNS record creation request format#1243
shibayan merged 1 commit into
masterfrom
codex/fix-ionos-record-creation

Conversation

@shibayan

@shibayan shibayan commented Aug 8, 2026

Copy link
Copy Markdown
Member

Summary

  • send IONOS DNS record creation payloads as the array required by the API
  • create multiple ACME TXT values in a single request and skip empty value sets
  • document the IONOS API key format and link to the official API guidance

Root cause

POST /zones/{zoneId}/records received a single record object even though the IONOS DNS API expects an array, causing certificate issuance to fail with HTTP 400.

Impact

This restores DNS-01 certificate issuance for IONOS users and avoids partial updates when a challenge requires multiple TXT values.

Validation

  • dotnet test Acmebot.slnx --no-restore (218 tests passed)
  • dotnet format Acmebot.slnx --verify-no-changes --no-restore

Closes #1242

@shibayan shibayan self-assigned this Aug 8, 2026
@shibayan shibayan added the bug PR: Fixes a defect label Aug 8, 2026
@shibayan
shibayan marked this pull request as ready for review August 8, 2026 03:04
Copilot AI lite review requested due to automatic review settings August 8, 2026 03:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes IONOS DNS-01 certificate issuance by aligning the DNS record creation request payload with the IONOS DNS API contract (array payload), and improves usability by documenting the expected API key format across docs and deployment UI metadata.

Changes:

  • Send IONOS DNS record creation payloads as an array (and batch multiple TXT values into a single request).
  • Skip record creation when there are no TXT values to create.
  • Document the required IONOS API key <public-prefix>.<secret> format in reference docs, provider guide, and deployment UI tooltip.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/Acmebot.App/Providers/IonosDnsProvider.cs Switches record creation from single-object POST to array POST; batches multiple TXT records per request and adds minor HTTP response disposal/formatting improvements.
docs/reference/configuration.md Clarifies IONOS API key format and links to official IONOS guidance.
docs/guide/dns-providers.md Expands IONOS provider setup documentation and updates example env var format.
deploy/uiFormDefinition.json Updates the IONOS API key tooltip to reflect the public-prefix.secret format.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/Acmebot.App/Providers/IonosDnsProvider.cs
@shibayan
shibayan merged commit 002197c into master Aug 8, 2026
11 checks passed
@shibayan
shibayan deleted the codex/fix-ionos-record-creation branch August 8, 2026 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug PR: Fixes a defect

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: IONOS DNS provider sends a single object instead of an array to POST /zones/{zoneId}/records

2 participants