hashicorp/packer · error
error retrieving channel from HCP Packer registry: %s
Error message
error retrieving channel from HCP Packer registry: %s
What it means
Returned by the hcp-packer-image datasource's Execute() when cli.GetChannel() fails while resolving the configured channel. The wrapped err.Error() carries the true cause (channel not found, auth failure, network error). Execution aborts with a null cty output because the iteration cannot be resolved without a successful channel lookup.
Source
Thrown at datasource/hcp-packer-image/data.go:171
var channelID string
if d.config.IterationID != "" {
log.Printf("[INFO] Reading info from HCP Packer registry (%s) [project_id=%s, organization_id=%s, iteration_id=%s]",
d.config.Bucket, cli.ProjectID, cli.OrganizationID, d.config.IterationID)
iter, err := cli.GetIteration(ctx, d.config.Bucket, hcpapi.GetIteration_byID(d.config.IterationID))
if err != nil {
return cty.NullVal(cty.EmptyObject), fmt.Errorf(
"error retrieving image iteration from HCP Packer registry: %s",
err)
}
iteration = iter
} else {
log.Printf("[INFO] Reading info from HCP Packer registry (%s) [project_id=%s, organization_id=%s, channel=%s]",
d.config.Bucket, cli.ProjectID, cli.OrganizationID, d.config.Channel)
channel, err := cli.GetChannel(ctx, d.config.Bucket, d.config.Channel)
if err != nil {
return cty.NullVal(cty.EmptyObject), fmt.Errorf("error retrieving "+
"channel from HCP Packer registry: %s", err.Error())
}
if channel.Iteration == nil {
return cty.NullVal(cty.EmptyObject), fmt.Errorf("there is no iteration associated with the channel %s",
d.config.Channel)
}
channelID = channel.ID
iteration = channel.Iteration
}
revokeAt := time.Time(iteration.RevokeAt)
if !revokeAt.IsZero() && revokeAt.Before(time.Now().UTC()) {
// If RevokeAt is not a zero date and is before NOW, it means this iteration is revoked and should not be used
// to build new images.
return cty.NullVal(cty.EmptyObject), fmt.Errorf("the iteration %s is revoked and can not be used on Packer builds",
iteration.ID)
}View on GitHub (pinned to eb36e3c3e4)
Solutions
- Verify the channel name exists in the bucket (case-sensitive) in the HCP Packer UI.
- Confirm bucket_name and the HCP project/organization of your credentials are correct.
- Set/refresh HCP_CLIENT_ID and HCP_CLIENT_SECRET in the execution environment.
- Retry on transient network/5xx errors, and migrate to hcp-packer-artifact since this datasource is deprecated.
Example fix
// before
data "hcp-packer-image" "example" {
bucket_name = "my-bucket"
channel = "prod" # actual channel is "production"
region = "us-east-1"
cloud_provider = "aws"
}
// after
data "hcp-packer-image" "example" {
bucket_name = "my-bucket"
channel = "production"
region = "us-east-1"
cloud_provider = "aws"
} Defensive patterns
Strategy: validation
Validate before calling
# Pre-check credentials and channel existence before invoking packer:
test -n "$HCP_CLIENT_ID" && test -n "$HCP_CLIENT_SECRET" || { echo "HCP credentials missing"; exit 1; }
# verify the channel exists in the configured bucket via the HCP UI/API before build Try / catch
if ! packer build template.pkr.hcl; then
if packer_logs | grep -q 'error retrieving channel from HCP Packer registry'; then
echo "Check channel name, bucket/project, and HCP credentials" >&2
fi
exit 1
fi Prevention
- Standardize channel names across buckets and verify them in the HCP UI.
- Ensure HCP credentials are provisioned in all CI environments.
- Plan migration to hcp-packer-artifact, since hcp-packer-image is deprecated.
When it happens
Trigger: channel is set (no iteration_id) and GetChannel(ctx, bucket, channel) returns an error: channel does not exist in the bucket, bucket/project is wrong, HCP credentials missing/invalid, or the deprecated registry API call fails (404/401/5xx/timeout).
Common situations: Misspelled channel name; channel created in a different project; CI missing HCP credentials; legacy datasource pointing at deprecated endpoints for newer registries; transient HCP outage mid-pipeline.
Related errors
- error retrieving image iteration from HCP Packer registry: %
- error retrieving version from HCP Packer Registry: %s
- error retrieving channel from HCP Packer Registry: %s
- there is no version associated with the channel %s
- the version %s is revoked and can not be used on Packer buil
AI-assisted analysis of hashicorp/packer@eb36e3c3e4 (2026-09-05).
Data as JSON: /api/errors/f589e1d8c463f098.
Report an issue: GitHub.