diff --git a/provider/internal/core/client.go b/provider/internal/core/client.go index 1de81a2..7b72bc7 100644 --- a/provider/internal/core/client.go +++ b/provider/internal/core/client.go @@ -1599,9 +1599,11 @@ func (c *UniversalClient) RunInstanceOperationUniversalByCode(ctx context.Contex if sent[param.SvcOperationCfsParamId] { continue } - if !param.IsRequired { - continue - } + // Дозаполняем ВСЕ незаданные параметры их текущим live-значением + // (ParamValue из GET ?fields=cfsParams), а не только required. + // Бэкенд для modify трактует пропущенный/null как reset-to-default, + // из-за чего частичный payload затирал create-поля (см. prompt_for_opus_modifier_null_bug.md). + // Поведение выровнено под RunInstanceOperationUniversalWithDefaults. val := "" if param.ParamValue != nil { val = *param.ParamValue @@ -1609,9 +1611,6 @@ func (c *UniversalClient) RunInstanceOperationUniversalByCode(ctx context.Contex val = *param.DefaultValue } val = normalizeUniversalValueV6(val, param) - if !param.IsRequired && strings.TrimSpace(val) == "" { - continue - } pPayload := genericParamReq{ InstanceOperationUid: opUid,