ErrLookup › Billionmail/BillionMail
Billionmail/BillionMail
BillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discord.gg/asfXzBUhZr · Go · 637 source files
Analyzed at fc36c76c05 on 2026-09-05. 420 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| Not suppliers found | http | error | docker-compose, multi-ip, config, yaml |
| Model not found | http | error | docker-compose, multi-ip, config, yaml |
| failed to query group: %w | http | error | docker-compose, multi-ip, yaml, type-assertion |
| failed to check unsubscribe: %w | http | error | docker-compose, multi-ip, yaml, service-key |
| the recipient has unsubscribed from the current group and ca | validation | error | docker-compose, multi-ip, yaml, type-assertion |
| failed to convert overview data: %v | http | error | docker-compose, multi-ip, yaml, service-key |
| base URL not configured | http | error | http, network, request, status-code |
| unable to determine domain for noreply email | http | warning | filesystem, user, mountpoint, linux |
| failed to create email sender: %w | http | warning | filesystem, mountpoint, linux, volume |
| failed to send confirmation email: %w | http | error | filesystem, permissions, linux, group |
| unsupported file type: %s | validation | warning | input-validation, file-upload, contact-import |
| error reading CSV file: %v | validation | error | csv, parsing, file-upload |
| failed to create zip entry for %s: %v | http | error | zip, archive, export |
| failed to write content to zip for %s: %v | http | error | zip, io, export |
| failed to close zip writer: %v | http | error | zip, archive, export, resource-cleanup |
| failed to read CSV headers: %v | validation | error | csv, file-upload, parsing |
| required column 'email' not found | validation | error | csv, validation, missing-column |
| failed to list containers: %w | http | error | docker, network, container |
| failed to get all domains: %w | http | error | database, postgresql, domains |
| fail to check domain: %w | http | error | database, ssl, domains, postgresql |
| domain %s does not exist | validation | error | domains, ssl, not-found |
| fail to set ssl: %w | http | error | ssl, certificate, sni |
| You cannot create more than 5000 batches | validation | error | validation, limits, mailboxes |
| failed to get all emails: %w | http | error | database, mailboxes, query |
| failed to get all mailboxes: %w | http | error | database, mailboxes, query |
| No log files found | http | warning | filesystem, logs, not-found |
| no log files found | http | warning | filesystem, logs, not-found |
| No log files found in the given date range | http | warning | logs, date-range, validation |
| invalid start_date: %v | validation | error | validation, dates, api |
| invalid end_date: %v | validation | error | validation, dates, api |
| end_date must not be before start_date | validation | warning | validation, date-range, operation-log |
| no log files found | http | warning | filesystem, logging, missing-files |
| start time must be greater or equal to end time | validation | warning | validation, timestamp, overview |
| failed to convert overview data: %v | http | error | goframe, type-conversion, serialization |
| start time must be greater or equal to end time | validation | warning | validation, timestamp, overview |
| failed to convert overview data: %v | http | error | goframe, type-conversion, serialization |
| Login failed too many times, please try again after %d secon | http | warning | rate-limit, authentication, login |
| Validation code ID and code cannot be empty | validation | warning | validation, captcha, authentication |
| Invalid validation code | validation | warning | captcha, authentication, verification |
| Invalid username or password | validation | warning | authentication, credentials, login |
| Failed to get account roles | exception | critical | database, auth, login, roles |
| Logout failed: %w | exception | error | jwt, logout, redis, token-blacklist |
| failed to get validate code: %w | exception | error | captcha, validation-code, login, redis |
| No SPF record found (from cache) | exception | error | dns, spf, cache, negative-caching |
| No SPF record found | exception | error | dns, spf, txt-record, email |
| configuration value too long, maximum 1024 characters | validation | error | validation, settings, input-length |
| admin username length must be between 4-32 | validation | error | validation, admin, username, settings |
| admin username can only contain letters, numbers and undersc | validation | error | validation, admin, username, settings |
| password length must be at least 4 characters | validation | error | validation, admin, password, settings |
| hostname format is incorrect | validation | error | validation, config, hostname |
| port must be between 1-65535 | validation | error | validation, config, port |
| IPv4 network format is incorrect, please use CIDR format (e. | validation | error | validation, config, network, cidr |
| invalid timezone | validation | error | validation, config, timezone |
| fail2ban value can only be y/n or 1/0 | validation | error | validation, config, boolean, fail2ban |
| retention_days must be a number | validation | error | validation, config, numeric |
| configuration value contains illegal characters | validation | critical | validation, security, injection, config |
| sender email is required | validation | error | validation, email, blacklist-alerts |
| invalid sender email format | validation | error | validation, email, format |
| SMTP server is required | validation | error | validation, smtp, blacklist-alerts |
| SMTP port must be between 1 and 65535 | validation | error | validation, smtp, config |
| SMTP password is required | validation | error | validation, smtp, auth, config |
| at least one recipient is required | validation | error | validation, smtp, config |
| invalid recipient email format: %s | validation | error | validation, email, config |
| %s | exception | error | smtp, network, relay |
| failed to connect to SMTP server: %v | exception | error | smtp, network, connection |
| failed to send test email to %d recipient(s): %v | exception | error | smtp, email-delivery |
| failed to read HTML template: %w | exception | error | filesystem, template, deployment |
| Failed to get the total number of exception recipients: %w | exception | error | database, postgres, query |
| Failed to get the exception recipient list: %w | exception | error | database, postgres, query, pagination |
| Failed to add exception recipient: %w | exception | error | database, goframe, insert-failure |
| Failed to remove exception recipient: %w | exception | error | database, goframe, delete-failure |
| Failed to get exception recipient: %w | exception | error | database, goframe, query-failure |
| Failed to query existing abnormal recipients: %w | exception | error | database, goframe, query-failure |
| Failed to update abnormal recipient: %w | exception | error | database, goframe, update-failure, concurrency |
| Failed to insert abnormal recipients: %w | exception | error | database, goframe, insert-failure |
| Failed to generate user private key: {} | exception | critical | crypto, acme, entropy, tls |
| DNS automated resolution failed: SecretId or SecretKey is em | validation | error | dns, acme, tencentcloud, missing-credentials, config |
| DNS provider initialization failed: {} | exception | error | dns, acme, tencentcloud, provider-init, config |
| DNS verification setup failed: {} | exception | error | dns, acme, dns01, challenge, lego |
| DNS automated resolution failed: APIKey or SecretKey is empt | validation | error | dns, acme, alidns, missing-credentials, config |
| DNS automated resolution failed: APIKey or Email is empty in | validation | error | dns, acme, cloudflare, missing-credentials, config |
| DNS automated resolution failed: APIKey or SecretKey is empt | validation | error | dns, acme, cloudxns, missing-credentials, config |
| DNS automated resolution failed: ClientID, ClientSecret or T | validation | error | go, acme, dns, azure, missing-credentials |
| DNS automated resolution failed: APIKey or APISecret is empt | validation | error | go, acme, dns, godaddy, missing-credentials |
| Failed to get configuration | exception | error | go, acme, lego, configuration |
| Failed to create ACME client: {} | exception | error | go, acme, lego, private-key, client-init |
| Failed to set HTTP verification: {} | exception | error | acme, ssl, http-01, lego |
| Failed to set Tencent Cloud DNS verification: {} | exception | error | acme, dns-01, tencentcloud, credentials |
| Failed to set Alibaba Cloud DNS verification: {} | exception | error | acme, dns-01, alidns, credentials |
| Failed to set CloudXNS DNS verification: {} | exception | error | acme, dns-01, cloudxns, deprecated-service |
| Failed to set AzureDNS verification: {} | exception | error | acme, dns-01, azuredns, credentials |
| Failed to set Cloudflare DNS verification: {} | exception | error | acme, dns-01, cloudflare, credentials |
| Failed to set Godaddy DNS verification: {} | exception | error | acme, dns-01, godaddy, credentials |
| Unsupported DNS provider: {} | validation | error | acme, dns-01, validation, unsupported-provider |
| Failed to register user: {} | exception | error | acme, registration, letsencrypt, network |
| Failed to apply for SSL certificate: {} | exception | error | acme, ssl, challenge, letsencrypt |
| Failed to create directory: {} | exception | error | filesystem, ssl, certificate, mkdir |
| Failed to save certificate file: {} | exception | error | filesystem, ssl, certificate, file-write |
| Failed to save private key file: {} | exception | error | filesystem, ssl, private-key, file-write |
| email is required | validation | error | validation, acme, required-field |
| at least one domain is required | validation | error | validation, acme, required-field |
| verification type must be either 'http' or 'dns' | validation | error | validation, acme, enum-value |
| DNS provider is required for DNS verification | validation | error | validation, acme, dns |
| unsupported DNS provider: %s, supported providers: %s | validation | error | validation, acme, dns, unsupported-value |
| DNS provider credentials are required for DNS verification | validation | error | validation, acme, dns, credentials |
| failed to save certificate: %v | exception | error | filesystem, acme, certificate, file-write |
| failed to save private key: %v | exception | error | filesystem, acme, file-write, permissions |
| invalid certificate | exception | error | acme, certificate, validation, pem |
| configuration file does not exist: %s | exception | error | configuration, file-not-found, acme |
| let's encrypt certificate is empty | exception | error | acme, certificate, renewal, empty-value |
| Content cannot be empty | validation | warning | validation, askai, empty-input |
| Supplier not found | exception | error | configuration, askai, supplier, missing-config |
| Model not found | exception | error | askai, model, configuration, lookup-failed |
| Chat not found | exception | error | askai, chat, not-found, state |
| Failed to save chat | exception | error | askai, persistence, chat, state |
| failed to initialize AI client | exception | error | askai, ai-client, configuration, initialization |
| Chat not found or already stopped | exception | warning | go, state-management, chat, idempotency |
| failed to unmarshal tool call arguments: %v, %s | exception | error | go, json, llm, streaming, tool-calls |
| request context is nil | exception | error | go, goframe, context, http |
| project configuration file does not exist: %s | exception | error | go, filesystem, config, project-setup |
| error reading project configuration file: %v | exception | error | go, filesystem, io, permissions |
| error unmarshalling project configuration: %v | exception | error | go, json, config, deserialization |
| error marshalling project configuration: %v | exception | error | go, json, config, serialization |
| error writing project configuration file: %v | exception | critical | go, filesystem, io, permissions, persistence |
| Add up to 3 URLs | validation | warning | go, validation, input-limits, project |
| error creating project configuration: %v | exception | error | go, config, filesystem, initialization |
| error reading project configuration: %v | exception | error | go, file-io, config |
| error getting knowledge base list: %v | exception | error | go, file-io, knowledge-base |
| error saving project configuration: %v | exception | error | go, file-io, config |
| knowledge base file does not exist: %s | exception | error | go, file-io, knowledge-base |
| error reading knowledge base file: %v | exception | error | go, file-io, knowledge-base |
| error unmarshalling knowledge base: %v | exception | error | go, json, knowledge-base |
| error marshalling knowledge base: %v | exception | error | go, json, serialization, filesystem |
| error writing knowledge base file: %v | exception | error | go, filesystem, io, permissions |
| error reading knowledge base directory: %v | exception | error | go, filesystem, io, directory |
| error reading knowledge base: %v | exception | error | go, filesystem, json, not-found |
| error saving knowledge base: %v | exception | error | go, filesystem, io, persistence |
| error removing knowledge base file: %v | exception | error | go, filesystem, permissions, delete |
| error marshalling company profile: %v | exception | warning | go, json, serialization |
| error creating company profile file: %v | exception | error | go, filesystem, io, permissions |
| error reading company profile file: %v | exception | error | go, filesystem, io, permissions |
| error unmarshalling company profile: %v | exception | error | |
| error saving company profile file: %v | exception | error | |
| error reading company profile: %v | exception | error | |
| error saving company profile: %v | exception | error | |
| error marshalling style config: %v | exception | error | |
| error saving style config file: %v | exception | error | |
| error reading style config file: %v | exception | error | |
| error unmarshalling style config: %v | exception | error | |
| error marshalling empty site map: %v | exception | warning | go, json, serialization, sitemap |
| error saving empty site map file: %v | exception | error | go, file-io, filesystem, permissions |
| error reading site map file: %v | exception | error | go, file-io, race-condition, permissions |
| error unmarshalling site map: %v | exception | error | go, json, corrupt-data, file-io |
| error marshalling site map: %v | exception | error | go, json, serialization, sitemap |
| error saving site map file: %v | exception | error | go, file-io, filesystem, permissions |
| error getting site map: %v | exception | error | go, error-wrapping, file-io, sitemap |
| error marshalling default footer config: %v | exception | error | go, json, serialization, footer, askai |
| error saving default footer config file: %v | exception | error | go, filesystem, permissions, config, footer, askai |
| error reading footer config file: %v | exception | error | go, filesystem, permissions, file-io, footer, askai |
| error unmarshalling footer config: %v | exception | error | go, json, config, corrupt-file, footer, askai |
| error getting footer config: %v | exception | error | go, config, file-io, footer, error-wrapping, askai |
| error marshalling footer config: %v | exception | error | go, json, serialization, config |
| error saving footer config file: %v | exception | error | go, filesystem, permissions, config |
| error marshalling default prompt config: %v | exception | error | go, json, serialization, config |
| error saving default prompt config file: %v | exception | error | go, filesystem, permissions, config |
| error reading prompt config file: %v | exception | error | go, filesystem, permissions, race-condition, config |
| error unmarshalling prompt config: %v | exception | error | json, unmarshal, config, go |
| error getting prompt config: %v | exception | error | json, config, io, go |
| error marshalling prompt config: %v | exception | error | json, marshal, go, config |
| error saving prompt config file: %v | exception | error | filesystem, io, permissions, go |
| error marshalling images: %v | exception | error | json, marshal, go, images |
| error saving images file: %v | exception | error | filesystem, io, config-persistence |
| error reading images configuration file: %v | exception | error | filesystem, io, config-persistence |
| error unmarshalling images configuration: %v | exception | error | json, config-persistence, data-corruption |
| upload image failed: %s | exception | error | network, cdn, upload |
| error reading images configuration: %v | exception | error | filesystem, config-persistence, json |
| error saving images configuration: %v | exception | error | filesystem, config-persistence, io |
| supplier configuration not found | exception | error | go, configuration, supplier, not-found |
| supplier name, base URL, and API key are required | validation | warning | go, validation, supplier, input |
| invalid base URL format: %w | validation | warning | go, validation, url, supplier |
| base URL must use http or https protocol | validation | warning | go, validation, url, scheme |
| base URL accessibility test failed: %w | exception | error | go, network, http, supplier, connectivity |
| API key validation failed: %w | exception | error | go, api-key, authentication, http, supplier |
| invalid API key | validation | error | go, authentication, api-key, http-401, supplier |
| unexpected API response: %d %s | exception | error | go, http, api, supplier, status-code |
| supplier configuration is incomplete, cannot set status | exception | error | configuration, validation, ai-supplier |
| model not found | exception | error | configuration, model-lookup, ai-supplier |
| supplier already exists | exception | error | configuration, duplicate, ai-supplier |
| supplier does not exist | exception | error | configuration, deletion, ai-supplier |
| Cannot delete the system's built-in model supplier. | exception | error | configuration, deletion, protected-resource, ai-supplier |
| models file does not exist for supplier: | exception | error | configuration, file-not-found, ai-supplier |
| failed to load API templates: %v | exception | error | database, postgresql, query |
| failed to load email templates: %v | exception | error | database, postgresql, query |
| failed to load contacts: %v | exception | error | database, postgresql, query |
| failed to import recipients (batch %d/%d): %w | exception | error | database, insert, batch |
| failed to get task info: %w | exception | error | database, postgresql, query |
| failed to update task pause status: %w | exception | error | database, update, postgresql |
| failed to update task process status: %w | exception | error | database, update, postgresql |
| empty token string | validation | warning | jwt, validation, input |
| unexpected signing method: %v | validation | error | jwt, go, security, auth |
| failed to parse JWT: %w | validation | error | jwt, go, auth |
| JWT missing email claim | validation | error | jwt, go, claims, auth |
| JWT has expired | validation | warning | jwt, go, expiry, auth |
| JWT missing or invalid group_id claim | validation | error | jwt, go, claims, auth |
| invalid token claims | validation | error | jwt, go, claims, auth |
| JWT missing group_token claim | validation | error | jwt, validation, batch-mail |
| end_time must greater than start_time | panic | error | validation, time-range, panic, batch-mail |
| threads must be greater than zero | validation | error | validation, concurrency, batch-mail |
| threads must be less than 100 | validation | error | validation, concurrency, limits, batch-mail |
| get task info failed: %w | exception | error | database, wrapped-error, batch-mail |
| task %d not found | exception | error | not-found, validation, batch-mail |
| task %d: update database threads failed: %w | exception | error | database, write-failure, wrapped-error, batch-mail |
| disk quota exceeded | exception | error | go, compression, gzip, disk-quota |
| illegal file path: | exception | critical | go, compression, gzip, path-traversal, security |
| disk quota exceeded | exception | error | go, compression, rar, disk-quota |
| illegal file path: | exception | critical | go, compression, rar, path-traversal, security |
| rar command not found, please install it first | exception | error | go, compression, rar, missing-binary, environment |
| source file/directory does not exist: %s | exception | error | go, compression, rar, file-not-found, path-validation |
| rar compression failed: %s - %s | exception | error | go, compression, rar, external-command, process-exit-error |
| rar file was not created successfully | exception | error | go, compression, rar, file-not-found, external-command |
| unrar command not found, please install it first | exception | error | go, compression, rar, missing-binary, environment |
| unrar extraction failed: %s - %s | exception | error | go, compression, rar, external-command, process-exit-error |
| disk quota exceeded | exception | error | quota, filesystem, archive |
| illegal file path: | exception | error | security, path-traversal, archive |
| failed to get contacts trend: %w | exception | error | database, query, sql |
| Read database password failed: %v | exception | critical | database, configuration, environment |
| Set database configuration failed: %v | exception | critical | database, configuration, goframe |
| database connection test failed after 10 attempts | exception | critical | database, connectivity, startup |
| failed to create Docker client: %v | exception | error | docker, configuration, environment |
| container with name %s not found | exception | error | docker, container, not-found |
| docker.sock not mounted, cannot access Docker API | exception | error | docker, deployment, socket |
| failed to pull image: %w | exception | error | docker, network, image-pull |
| failed to create temporary container: %w | exception | critical | docker, container-creation, devops |
| failed to start temporary container: %w | exception | critical | docker, container-start, devops |
| failed waiting for container execution: %w | exception | error | docker, container-wait, context-cancelled |
| resolve failed | exception | error | dns, network, blacklist |
| alert settings file not found | exception | warning | configuration, filesystem, blacklist |
| alert settings file is empty | exception | warning | configuration, filesystem, json |
| failed to parse alert settings: %v | exception | warning | json, configuration, parsing |
| failed to connect to SMTP server: %v | exception | error | smtp, email, network |
| failed to send alert email to %d recipient(s): %v | exception | error | smtp, email, recipients |
| failed to check alias existence: %v | exception | error | database, postgresql, alias |
| failed to update alias: %v | exception | error | database, postgresql, goframe, alias |
| failed to insert alias: %v | exception | error | database, postgresql, goframe, insert, alias |
| failed to update BILLIONMAIL_HOSTNAME in .env file: %v | exception | error | docker, env-file, configuration, filesystem |
| failed to update BILLIONMAIL_HOSTNAME in postfix container: | exception | error | docker, postfix, exec, container |
| failed to restart postfix container: %v | exception | error | docker, postfix, container-restart |
| failed to query relay domain mappings: %v | exception | error | database, sql, relay, dkim, migration |
| Failed to connect to Docker API: %v | exception | error | docker, dkim, connection, socket |
| Failed to generate DKIM key pair: %v | exception | error | docker, dkim, rspamd, key-generation, exec |
| Failed to write DKIM public key: %v | exception | error | filesystem, dkim, write-failed, rspamd |
| Failed to change DKIM private key permissions: %v | exception | error | filesystem, permissions, dkim, chmod |
| Failed to read DKIM sign config: %v | exception | error | filesystem, dkim, permissions, rspamd |
| Failed to write DKIM sign config: %v | exception | error | filesystem, dkim, write-failure, rspamd |
| Failed to restart rspamd container: %v | exception | error | docker, rspamd, container, service-restart |
| Cannot read DKIM public key: %v | exception | error | filesystem, dkim, missing-file, rspamd |
| Failed to parse DKIM record: %v | exception | warning | regex, dkim, parsing |
| Invalid DKIM record format | exception | error | dkim, format, parsing, dns |
| Failed to get server IP: %v | exception | error | network, spf, ip-lookup, dns |
| failed to get all domains: %v | exception | critical | database, postgresql, dkim, domain-enumeration |
| failed to write DKIM signing config: %v | exception | error | filesystem, dkim, rspamd, write-failure |
| failed to change DKIM file permissions: %v | exception | error | filesystem, permissions, dkim, chmod |
| failed to connect to Docker API: %v | exception | error | docker, network, socket, connection |
| failed to restart rspamd container: %v | exception | error | docker, rspamd, container-restart |
| HostWorkDir not set | exception | error | configuration, env, dovecot, quota |
| dovecot conf dir not found: %s | exception | error | filesystem, dovecot, configuration, missing-path |
| read dovecot.conf failed: %w | exception | error | filesystem, dovecot, read-failure |
| 333333write new dovecot-sql.conf.ext failed: %w | exception | error | filesystem, dovecot, write-failure, sql-config |
| Generate password md5-crypt failed: %w | exception | error | crypto, password, mailbox, validation |
| mailbox %s already exists | exception | warning | database, duplicate-key, mailbox, unique-constraint |
| Prefix validation error: %w | exception | error | go, regex, validation |
| Prefixes can contain only letters, numbers, underscores, and | validation | error | go, validation, input |
| Batch insert mailbox failed (batch %d-%d): %w | exception | critical | go, database, insert, transaction |
| Failed to create email: %w | exception | critical | go, database, transaction, batch |
| Failed to create any mailbox | exception | error | go, validation, batch, empty-result |
| Decode password failed: %w | exception | error | go, password, decryption, import |
| open maildirsize failed: %w | exception | warning | go, filesystem, quota, maildir |
| parse maildirsize line %d: invalid size '%s': %w | exception | error | maildir, quota, file-parsing, go |
| scan maildirsize failed: %w | exception | error | maildir, io, file-read, go |
| failed to read postfix master config: %v | exception | error | postfix, configuration, file-read, tls |
| failed to update postfix master config: %v | exception | error | postfix, regex, configuration, go |
| failed to write postfix master config: %v | exception | error | postfix, file-write, permissions, tls |
| certificate data is empty | validation | error | tls, certificate, validation, go |
| private key data is empty | validation | error | tls, certificate, private-key, validation |
| certificate is invalid | validation | error | tls, certificate, x509, validation |
| failed to read postfix config: %v | exception | error | postfix, configuration, file-read, tls |
| failed to write certificate file: %v | exception | error | filesystem, ssl-certificate, postfix, file-write |
| failed to write key file: %v | exception | error | filesystem, ssl-certificate, private-key, postfix, file-write |
| failed to write postfix config: %v | exception | error | filesystem, postfix, configuration, file-write |
| failed to create domain directory: %v | exception | error | filesystem, ssl-certificate, sni, directory-creation, domain |
| failed to update SNI map: %v | exception | error | postfix, sni, ssl-certificate, configuration |
| failed to hash postfix config: %v | exception | error | docker, postfix, sni, exec, container |
| failed to read dovecot config: %v | exception | error | filesystem, dovecot, file-io, config |
| failed to write dovecot config: %v | exception | error | filesystem, dovecot, config, permissions |
| failed to restart postfix container: %v | exception | error | docker, postfix, container, service-restart |
| failed to restart dovecot container: %v | exception | error | docker, container, dovecot, mail-service |
| certificate not found in database: %v | exception | error | database, ssl, certificate, mail-service |
| certificate content is empty in database | exception | error | ssl, certificate, database, data-integrity |
| failed to parse certificate info: %v | exception | error | ssl, certificate, pem, parsing |
| unexpected server response | exception | error | smtp, authentication, sasl, email |
| Email Sender not configured | exception | error | smtp, configuration, email, mail-service |
| query password failed: %w | exception | error | database, smtp, password, mailbox |
| password not found for %s | exception | error | mailbox, smtp, password, configuration |
| hex decode failed: %w | exception | error | encoding, hex, password, data-format |
| base64 decode failed: %w | exception | error | encoding, base64, password, data-format |
| TLS dial: %w | exception | error | network, tls, smtp, dial |
| new SMTP client: %w | exception | error | smtp, tls, protocol |
| SMTP auth: %w | exception | error | smtp, auth, credentials, tls |
| SMTP dial: %w | exception | error | network, smtp, dial, tcp |
| SMTP STARTTLS: %w | exception | error | smtp, tls, starttls, handshake |
| no recipients specified | validation | error | validation, smtp, input |
| failed to connect: %w | exception | error | smtp, connection, retry, reconnect |
| reconnect failed: %w | exception | error | smtp, reconnect, retry, connection |
| SMTP mail: %w | exception | error | smtp, mail-from, envelope, protocol |
| SMTP rcpt: %w | exception | error | smtp, email-delivery, relay-denied |
| SMTP data: %w | exception | error | smtp, data-command, email-delivery |
| SMTP write: %w | exception | error | smtp, io-write, connection-reset |
| SMTP close writer: %w | exception | error | smtp, end-of-data, email-delivery |
| invalid data length | exception | error | encryption, aes, data-corruption |
| end_time must greater than start_time | panic | error | validation, time-range, panic |
| failed to create backup: %v | exception | error | filesystem, backup, postfix |
| failed to apply configurations: %v, rollback also failed: %v | exception | critical | configuration, rollback, postfix, state-corruption |
| failed to apply configurations, but rollback succeeded: %v | exception | error | configuration, rollback, postfix |
| failed to read file %s: %v | exception | error | filesystem, permissions, postfix, backup |
| failed to create backup for %s: %v | exception | error | filesystem, permissions, backup, go |
| failed to read backup file %s: %v | exception | critical | filesystem, permissions, rollback, backup, go |
| failed to rollback file %s: %v | exception | critical | filesystem, permissions, rollback, go |
| %s | exception | error | error-handling, rollback, go |
| failed to update docker-compose.yml: %v | exception | error | docker-compose, docker, config-apply, wrapper |
| failed to update Postfix configurations: %v | exception | error | postfix, config-apply, wrapper, go |
| failed to create temporary directory %s: %v | exception | error | filesystem, permissions, docker, go |
| failed to read temporary docker-compose.yml file: file is em | exception | error | docker-compose, volume-mount, filesystem, go |
| failed to modify docker-compose content: %v | exception | error | docker-compose, yaml, parsing, go |
| failed to write temporary output file: %v | exception | error | filesystem, disk, docker-compose, go |
| postfix-billionmail service not found | exception | error | |
| postfix-billionmail networks section not found | exception | error | |
| missing 'services' in config | exception | error | |
| missing 'services' section in docker-compose.yml | exception | error | |
| Postfix service 'postfix-billionmail' configuration does not | exception | error | |
| http get error: %s | http | error | |
| specified user not valid | exception | error | |
| mountpoint not exists | exception | error | |
| group not exists: | exception | error | |
| file not exists: | error_code | error | filesystem, file-not-found, chown |
| user not exists: | error_code | error | filesystem, unix-users, chown |
| invalid attr: | error_code | error | filesystem, validation, chattr, input-validation |
| Invalid operator: | panic | error | panic, validation, versioning, go |
| download file failed: | error_code | error | network, http, download, go |
| local IP not found | error_code | error | network, ip-detection, environment, go |
| invalid port: | error_code | error | validation, firewall, ports, go |
| environment file not found: | error_code | error | configuration, env-file, docker, go |
| key cannot be empty | validation | error | validation, options, configuration, go |
| value cannot be nil | validation | error | validation, options, nil-value, go |
| pointer cannot be nil | validation | error | validation, options, nil-pointer |
| failed to get option from database: | error_code | critical | database, postgres, options |
| option not found | error_code | warning | options, missing-data, defaults |
| account ID not found in context | error_code | error | auth, context, rbac |
| failed to get account: %w | error_code | critical | database, postgres, rbac, auth |
| no default jwt secret found | panic | critical | jwt, security, environment, startup |
| unable to get captcha after multiple attempts | error_code | error | captcha, retry, pool |
| redis env init error: %v | error_code | critical | redis, environment, startup |
| redis connection test failed after 10 attempts | error_code | critical | redis, connection, startup, retry |
| rspamdadm not found | error_code | error | rspamd, docker, exec, mail |
| imagemagick annotate failed: %w\noutput: %s | error_code | error | imagemagick, exec, external-command, video-gen |
| annotate %s: %w | error_code | error | imagemagick, batch-processing, video-gen, exec |
| rate limiter: %w | error_code | warning | rate-limiting, context-canceled, http, timeout |
| circuit breaker [%s]: %w | error_code | error | circuit-breaker, http, resilience, network |
| no scenes provided | validation | error | ffmpeg, validation, video-gen, empty-input |
| create output dir: %w | error_code | error | filesystem, permissions, ffmpeg, io |
| ffmpeg compositing failed: %w\noutput: %s | error_code | error | ffmpeg, exec, video-encoding, external-command |
| marshal lipsync request: %w | error_code | error | json, serialization, lipsync, video-gen |
| create lipsync request: %w | error_code | error | http, url, config, lipsync |
| create status request: %w | error_code | error | http, url, lipsync, jobid |
| lipsync API call: %w | error_code | error | network, http-client, timeout, lipsync |
| lipsync API error %d: %s | http | error | http, api-error, lipsync, third-party |
| decode lipsync response: %w | error_code | error | json, decoding, lipsync, third-party |
| lipsync status API call: %w | error_code | error | network, http-client, lipsync, api-call |
| lipsync status API error %d: %s | http | error | http-status, api-error, lipsync, auth |
| decode lipsync status: %w | error_code | error | json, decoding, lipsync, http-response |
| create output dir: %w | error_code | error | filesystem, permissions, directory, lipsync |
| create download request: %w | error_code | error | url, validation, http-request, lipsync |
| download lipsync video: %w | error_code | error | network, http, lipsync, download |
| download error %d | http | error | http, http-status, lipsync, expired-url |
| create output file: %w | error_code | error | filesystem, io, permissions, disk-full |
| write video data: %w | error_code | error | network, io, download, truncated-file |
| enqueue video job: %w | error_code | error | database, postgres, goframe, insert |
| contact %d missing website_url | error_code | error | video-gen, validation, missing-field, contacts |
| load contact attribs: %w | error_code | error | database, db-query, goframe, postgres |
| contact %d has no attribs | error_code | error | database, missing-record, contacts, data-quality |
| parse contact attribs: %w | error_code | error | json, parsing, data-quality, goframe |
| voice clone: %w | error_code | error | api, external-service, voice-cloning, cartesia, retry-exhausted |
| no voice configured: set VOICE_SAMPLE_URL or VOICE_DEFAULT_I | error_code | error | configuration, environment-variable, voice, video-generation |
| lip sync timed out after %v | error_code | error | timeout, polling, async-job, external-service |
| check lip sync status: %w | error_code | error | network, api-error, polling, wrapped-error |
| lip sync completed but no video URL | error_code | error | api-contract, empty-response, external-service, schema-change |
| lip sync failed: %s | error_code | error | external-service, job-failure, media-processing, lip-sync |
| create output dir: %w | error_code | error | filesystem, permissions, directory, io |
| playwright capture failed: %w output: %s | error_code | error | playwright, nodejs, screenshot, external-process, browser-automation |
| claude script generation: %w | error_code | error | llm, api-error, rate-limit, network, claude |
| claude returned no choices | error_code | error | llm, empty-response, content-filter, api-contract, claude |
| create thumbnail dir: %w | error_code | error | filesystem, permissions, directory, imagemagick, io |
| imagemagick thumbnail failed: %w output: %s | error_code | error | imagemagick, exec, external-command, thumbnail |
| open file for upload: %w | error_code | error | filesystem, r2, upload, file-not-found |
| r2 upload: %w | error_code | error | aws-sdk, r2, s3, upload, network |
| upload video: %w | error_code | error | r2, upload, pipeline, error-wrapping |
| upload thumbnail: %w | error_code | error | r2, upload, thumbnail, pipeline |
| marshal clone request: %w | error_code | warning | json, serialization, cartesia, voice-clone |
| create clone request: %w | error_code | error | http, url, cartesia, config |
| marshal TTS request: %w | error_code | warning | json, serialization, cartesia, tts |
| create TTS request: %w | error_code | error | http, url, cartesia, tts, config |
| cartesia clone API call: %w | error_code | error | network, http, cartesia, timeout, dns |
| cartesia clone API error %d: %s | http | error | http, api, cartesia, voice-clone |
| decode clone response: %w | exception | error | json, decoding, cartesia, api |
| create output dir: %w | exception | error | filesystem, permissions, io |
| cartesia TTS API call: %w | exception | error | network, http, timeout, cartesia |
| cartesia TTS API error %d: %s | http | error | http, api, cartesia, tts |
| create output file: %w | exception | error | filesystem, io, permissions |
| write audio data: %w | exception | error | io, network, filesystem, partial-write |
| getSenderIdentitiesForIp err: %v | exception | error | database, sql, warmup |
| failed to get recipient count: %w | exception | error | database, sql, warmup, count-query |