Billionmail/BillionMail · error
postfix-billionmail service not found
Error message
postfix-billionmail service not found
What it means
Raised in modifyPostfixNetworksText when scanning the docker-compose.yml lines finds no line containing 'postfix-billionmail:', meaning the compose file does not define the expected Postfix service block. The function cannot locate the section whose networks list it must rewrite, so the multi-IP network reconfiguration of the compose file aborts.
Source
Thrown at core/internal/service/multi_ip_domain/config_manager.go:412
// Find the postfix-billionmail service section
postfixStartIdx := -1
postfixNetworksStartIdx := -1
postfixNetworksEndIdx := -1
for i, line := range lines {
if strings.Contains(line, "postfix-billionmail:") {
postfixStartIdx = i
} else if postfixStartIdx != -1 && strings.Contains(line, "networks:") {
postfixNetworksStartIdx = i
} else if postfixNetworksStartIdx != -1 && strings.TrimSpace(line) != "" &&
!strings.HasPrefix(line, " ") && !strings.HasPrefix(line, "\t\t") {
postfixNetworksEndIdx = i
break
}
}
if postfixStartIdx == -1 {
return lines, fmt.Errorf("postfix-billionmail service not found")
}
// Copy content up to the postfix networks section
if postfixNetworksStartIdx != -1 {
result = append(result, lines[:postfixNetworksStartIdx+1]...)
} else {
// If there is no networks configuration, it needs to be added
return lines, fmt.Errorf("postfix-billionmail networks section not found")
}
// Add default billionmail-network configuration with fixed IP
result = append(result, " billionmail-network:")
result = append(result, " aliases:")
result = append(result, " - postfix")
result = append(result, " ipv4_address: 172.66.1.100")
// Add custom network configurations
for _, cfg := range configs {View on GitHub (pinned to fc36c76c05)
Solutions
- Inspect the docker-compose.yml actually deployed and confirm the Postfix service is named 'postfix-billionmail'
- Restore the service block from the reference compose file shipped with BillionMail
- If the service was intentionally renamed, update modifyPostfixNetworksText to match the new service key
- Verify the correct compose file path is being passed to modifyDockerComposeText
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/internal/service/multi_ip_domain/config_manager.go:412 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Billionmail/BillionMail@fc36c76c05 (2026-09-05).
Data as JSON: /api/errors/4db40cd53cdda4c6.
Report an issue: GitHub.