Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion service/history/visibility_queue_task_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"go.temporal.io/server/common/definition"
"go.temporal.io/server/common/dynamicconfig"
"go.temporal.io/server/common/log"
"go.temporal.io/server/common/log/tag"
"go.temporal.io/server/common/metrics"
"go.temporal.io/server/common/namespace"
"go.temporal.io/server/common/payload"
Expand Down Expand Up @@ -409,7 +410,10 @@ func (t *visibilityQueueTaskExecutor) processChasmTask(
for alias, value := range aliasedSearchAttributes {
fieldName, err := searchAttributesMapper.GetFieldName(alias, namespaceEntry.Name().String())
if err != nil {
return err
// INFO: To reach here, either the search attribute has been deregistered before task execution, which is valid behavior,
// or the upserted search attribute is incorrectly mapped, indicating possible bug in application code.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WDYM incorrectly mapped? Do you mean that there's a bug in the frontend code?

There's another cause for this that we discussed earlier. The search attribute mapping may have propagation delays to the history node executing this task.
We already ensure that all search attributes are mappable on the frontend.

Copy link
Contributor Author

@awln-temporal awln-temporal Nov 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the case of eager workflows, following executions bypassed frontend validators. error message is more specific now.

t.logger.Error("Failed to get field name for alias, ignoring search attribute", tag.NewStringTag("alias", alias), tag.Error(err))
continue
}
searchattributes[fieldName] = value
}
Expand Down
Loading