Hoje trabalhando em um agente me deparei com o seguinte erro ao tentar publicar no ambiente.

Erro ao publicar agente com variável de ambiente

Olhando os detalhes do erro eu me deparo com a seguinte informação:


[
  {
    "componentDisplayName": "413b682b-3920-4c61-ba47-674138fef178",
    "diagnosticResult": [
      {
        "$kind": "ElementValidationError",
        "errorCode": "EnvironmentVariableMissingValue",
        "errorMessage": "Environment variable is a secret and cannot be read"
      }
    ],
    "componentId": "413b682b-3920-4c61-ba47-674138fef178",
    "errorDescription": "Environment variable is a secret and cannot be read",
    "diagnosticErrorCount": 1
  }
]

Achei estranho por dois motivos: não estava usando variável de ambiente e também não tinha nenhuma variável do tipo secret.

Analisei tópico por tópico tentando achar essa tal variável de ambiente, usei a busca e nada me trazia. Então para me auxiliar fui através do fetchxml localizar se existia mesmo.

Com isso, eu fiz a query abaixo, que eu procuro os componentes do bot de variáveis de ambiente relacionado com um bot especifico

<fetch top='50'>
  <entity name='botcomponent_environmentvariabledefinition'>
    <link-entity name='botcomponent' from='botcomponentid' to='botcomponentid' alias='CDC'>
      <link-entity name='bot' from='botid' to='parentbotid' alias='C'>
        <filter>
          <condition attribute='name' operator='like' value='%<Nome do BOT>%' />
        </filter>
      </link-entity>
    </link-entity>
    <link-entity name='environmentvariabledefinition' from='environmentvariabledefinitionid' to='environmentvariabledefinitionid' alias='EVD'>
      <attribute name='displayname' />
    </link-entity>
  </entity>
</fetch>

Assim eu conseguir localizar realmente existia uma variável vinculada. Ela estava na propriedade de inatividade da conversa, ou seja a pesquisa do Copilot Studio não pesquisa nessa propriedade.

Linha de variável de ambiente localizada

Quando eu fui ver a configuração da variável entendi o motivo do erro que o Copilot Studio relatava: A variável não tinha nenhum valor definido, nem o valor default. Por ele não conseguir ler nenhum valor o Copilot Simplesmente entende que essa variável seria uma chave secreta e informa que não consegue fazer a leitura.

Após atualizar o valor e tentar publicar, o agente foi com sucesso!

Espero que essa dica te ajude em futuras publicações dos seus agentes.