diff --git a/docs/develop/go/observability.mdx b/docs/develop/go/observability.mdx index 65fe144757..0725d45836 100644 --- a/docs/develop/go/observability.mdx +++ b/docs/develop/go/observability.mdx @@ -428,6 +428,17 @@ map[string]interface{}{ } ``` +When upserting Search Attributes in existing Workflows, versioning prevents failures caused by [non-determinism errors](/workflows#non-deterministic-change). + +```go +version := workflow.GetVersion(ctx, "adding-to-existing-workflows", workflow.DefaultVersion, 0) +if version == workflow.DefaultVersion { + // Do nothing +} else { + workflow.UpsertTypedSearchAttributes(ctx, searchAttributeUpdate...) +} +``` + ### Remove a Search Attribute from a Workflow {#remove-search-attribute} **How to remove a Search Attribute from a Workflow using the Go SDK.**