diff --git a/backend/open_webui/utils/chat_variables.py b/backend/open_webui/utils/chat_variables.py index 5ff2e21b05..c1776f333f 100644 --- a/backend/open_webui/utils/chat_variables.py +++ b/backend/open_webui/utils/chat_variables.py @@ -112,7 +112,7 @@ def _safe_field(key: str, definition: dict[str, Any]) -> dict[str, Any]: 'type', } field = {'key': key} - for field_key in allowed_keys: + for field_key in sorted(allowed_keys): if field_key in definition: field[field_key] = definition[field_key] diff --git a/backend/open_webui/utils/models.py b/backend/open_webui/utils/models.py index 1c648b7f38..717718cc99 100644 --- a/backend/open_webui/utils/models.py +++ b/backend/open_webui/utils/models.py @@ -374,6 +374,8 @@ async def get_all_models(request, refresh: bool = False, user: UserModel = None) for filter_id in set(model.pop('filter_ids', [])) | global_filter_ids if filter_id in enabled_filter_ids ] + # Set order varies per process, and an unstable order defeats the RedisDict content signature. + filter_ids.sort() model['actions'] = [] for action_id in action_ids: