diff --git a/builtin/provisioners/habitat/resource_provisioner.go b/builtin/provisioners/habitat/resource_provisioner.go index 9f3720e86..2ce35d250 100644 --- a/builtin/provisioners/habitat/resource_provisioner.go +++ b/builtin/provisioners/habitat/resource_provisioner.go @@ -293,8 +293,13 @@ func validateFn(c *terraform.ResourceConfig) (ws []string, es []error) { // Validate service level configs services, ok := c.Get("service") if ok { - for _, svc := range services.([]interface{}) { - service := svc.(map[string]interface{}) + for i, svc := range services.([]interface{}) { + service, ok := svc.(map[string]interface{}) + if !ok { + es = append(es, fmt.Errorf("service %d: must be a block", i)) + continue + } + strategy, ok := service["strategy"].(string) if ok && !updateStrategies[strategy] { es = append(es, errors.New(strategy+" is not a valid update strategy."))