diff --git a/terraform/eval_validate.go b/terraform/eval_validate.go
index <HASH>..<HASH> 100644
--- a/terraform/eval_validate.go
+++ b/terraform/eval_validate.go
@@ -208,10 +208,8 @@ func (n *EvalValidateProvisioner) validateConnConfig(ctx EvalContext, config *co
 // exactly what is expected for a given connection type.
 var connectionBlockSupersetSchema = &configschema.Block{
 	Attributes: map[string]*configschema.Attribute{
-		"type": {
-			Type:     cty.String,
-			Required: true,
-		},
+		// NOTE: "type" is not included here because it's treated special
+		// by the config loader and stored away in a separate field.
 
 		// Common attributes for both connection types
 		"user": {
core: Don't include "type" in connection block schema

The config loader already extracts this during its initial pass and saves
it as a separate field in a configs.Connection value, so requiring it
again here causes confusing errors about this attribute being provided but
not set.