{"record":{"id":"ddecb0daaf725669","repo":"goreleaser/goreleaser","slug":"azure-storage-account-you-provided-is-not-valid","errorCode":null,"errorMessage":"azure storage account you provided is not valid: %w","messagePattern":"azure storage account you provided is not valid: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/pipe/blob/upload.go","lineNumber":223,"sourceCode":"\t\t}\n\t}\n\treturn false\n}\n\nfunc handleError(err error, url string) error {\n\tswitch {\n\tcase errorContains(err, \"NoSuchBucket\", \"ContainerNotFound\", \"notFound\"):\n\t\treturn fmt.Errorf(\"provided bucket does not exist: %s: %w\", url, err)\n\tcase errorContains(err, \"NoCredentialProviders\"):\n\t\treturn fmt.Errorf(\"check credentials and access to bucket: %s: %w\", url, err)\n\tcase errorContains(err, \"InvalidAccessKeyId\"):\n\t\treturn fmt.Errorf(\"aws access key id you provided does not exist in our records: %w\", err)\n\tcase errorContains(err, \"AuthenticationFailed\"):\n\t\treturn fmt.Errorf(\"azure storage key you provided is not valid: %w\", err)\n\tcase errorContains(err, \"invalid_grant\"):\n\t\treturn fmt.Errorf(\"google app credentials you provided is not valid: %w\", err)\n\tcase errorContains(err, \"no such host\"):\n\t\treturn fmt.Errorf(\"azure storage account you provided is not valid: %w\", err)\n\tcase errorContains(err, \"ServiceCode=ResourceNotFound\"):\n\t\treturn fmt.Errorf(\"missing azure storage key for provided bucket %s: %w\", url, err)\n\tdefault:\n\t\treturn fmt.Errorf(\"failed to write to bucket: %w\", err)\n\t}\n}\n\nfunc getData(ctx *context.Context, conf config.Blob, path string) ([]byte, error) {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\treturn data, fmt.Errorf(\"failed to open file %s: %w\", path, err)\n\t}\n\tif conf.KMSKey == \"\" {\n\t\treturn data, nil\n\t}\n\tkeeper, err := secrets.OpenKeeper(ctx, conf.KMSKey)\n\tif err != nil {\n\t\treturn data, fmt.Errorf(\"failed to open kms %s: %w\", conf.KMSKey, err)","sourceCodeStart":205,"sourceCodeEnd":241,"githubUrl":"https://github.com/goreleaser/goreleaser/blob/f5edd7395693c0c6b501dc722d445d2e86af854d/internal/pipe/blob/upload.go#L205-L241","documentation":"handleError maps an error containing \"no such host\" to this message: for Azure Blob uploads this almost always means the storage account name in the bucket URL doesn't resolve — i.e. the account doesn't exist or the URL is wrong (DNS failure for *.blob.core.windows.net).","triggerScenarios":"A blob config with provider: azure whose bucket: field names a non-existent storage account, a typo in the account name, or a custom endpoint/hostname that doesn't resolve.","commonSituations":"Typo'd storage account names in .goreleaser.yaml; storage account deleted or renamed; network/DNS restrictions in CI runners (proxies, private DNS); using an S3 bucket name in an Azure blob config.","solutions":["Verify the storage account name in the blob config matches an existing Azure storage account","Test DNS from the CI runner (nslookup <account>.blob.core.windows.net)","Check for proxy/firewall rules blocking outbound DNS/HTTPS to blob.core.windows.net","Confirm the correct endpoint/custom domain is configured if not using public Azure"],"exampleFix":"# before\nblobs:\n  - provider: azure\n    bucket: relases-account   # typo, host won't resolve\n# after\nblobs:\n  - provider: azure\n    bucket: releases-account","handlingStrategy":"validation","validationCode":"account=\"my-account\"\nif ! nslookup \"${account}.blob.core.windows.net\" > /dev/null 2>&1; then\n  echo \"azure storage account $account does not resolve\"; exit 1\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Double-check storage account spelling in blob config","Confirm outbound DNS/HTTPS is allowed from CI runners","Verify the account still exists after renames/deletions","Use the same account name for AZURE_STORAGE_ACCOUNT and the bucket URL"],"tags":["go","goreleaser","azure","storage","dns","network"],"backgroundTag":"no-such-host","analyzedSha":"f5edd7395693c0c6b501dc722d445d2e86af854d","analyzedAt":"2026-09-05T09:57:18.807Z","contentChangedAt":"2026-09-05T09:57:18.807Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}