这是indexloc提供的服务,不要输入任何密码
Skip to content

[BUG] SAML attribute type conversion error in vercel_team_config with Pro plan #343

@brei0x

Description

@brei0x

Describe the bug

I'm encountering persistent type conversion errors with the saml attribute in the vercel_team_config resource using provider version 3.5.1. This happens on a Vercel Pro plan (not Enterprise).

Error message:

An unexpected error was encountered while verifying an attribute value matched its expected type to prevent unexpected behavior or panics. This is always an error in the provider. Please report the following to the provider developer:

Expected framework type from provider logic: types.ObjectType["enforced":basetypes.BoolType, "roles":types.MapType[types.ObjectType["access_group_id":basetypes.StringType, "role":basetypes.StringType]]] / underlying type: tftypes.Object["enforced":tftypes.Bool, "roles":tftypes.Map[tftypes.Object["access_group_id":tftypes.String, "role":tftypes.String]]]
Received framework type from provider logic: types.ObjectType[] / underlying type: tftypes.Object[]
Path: saml

To Reproduce

resource "vercel_team_config" "mywebsite" {
  id                         = "team_xxxxxxxxxxxxxxxxxxxxxxxx"
  avatar                     = data.vercel_file.example.file
  name                       = "Vercel terraform example"
  slug                       = "vercel-terraform-example"
  enable_preview_feedback    = "default"
  enable_production_feedback = "off"
  email_domain               = "example.com"
}

Terraform and Vercel Provider Version

Terraform v1.12.1
on darwin_arm64
+ provider registry.terraform.io/hashicorp/hcp v0.106.0
+ provider registry.terraform.io/vercel/vercel v3.5.1

Additional Details

I've tried multiple different configurations of the saml attribute, but none of them work:

  1. With explicit structure matching the expected format:
    saml = { enforced = false roles = { "group_name" = { access_group_id = "access_group_id_value" role = "role_value" } } }

  2. With empty roles map:
    saml = { enforced = false roles = {} }

  3. Setting to null:
    saml = null

  4. With lifecycle ignore_changes:

lifecycle {
    ignore_changes = [saml]
}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions