diff --git a/provider/internal/core/client.go b/provider/internal/core/client.go index 7b72bc7..d94b1c8 100644 --- a/provider/internal/core/client.go +++ b/provider/internal/core/client.go @@ -1604,6 +1604,12 @@ func (c *UniversalClient) RunInstanceOperationUniversalByCode(ctx context.Contex // Бэкенд для modify трактует пропущенный/null как reset-to-default, // из-за чего частичный payload затирал create-поля (см. prompt_for_opus_modifier_null_bug.md). // Поведение выровнено под RunInstanceOperationUniversalWithDefaults. + // НО: если ни live-значения, ни дефолта НЕТ — пропускаем (не шлём синтетический + // "0"/"false"/"[]", который может нарушить constraint "integer > 0"). + if (param.ParamValue == nil || strings.TrimSpace(*param.ParamValue) == "") && + (param.DefaultValue == nil || strings.TrimSpace(*param.DefaultValue) == "") { + continue + } val := "" if param.ParamValue != nil { val = *param.ParamValue