Stale activeGroupOid after group removal interrupts chat in legacy and React V2
维护者通常 1 天内回复
@paullizer 已经在做这个了。
开始于 2026年10月21日。
评估
这个 Issue 还没有评估数据。
描述
Issue
A user removed from their active SimpleChat group retained that group's ID in settings.activeGroupOid. Sending messages repeatedly failed before Semantic Kernel initialization returned, leaving chat unusable. The reported user belonged to no other groups and could not readily choose another active group. Manually setting the persisted active-group value to JSON null restored chat.
The fix must cover both the legacy and React V2 chat experiences and must not require the user to repair their settings or belong to a group to use ordinary chat.
Steps to Reproduce
- Add a user to a SimpleChat group and select it as their active group.
- Configure an agent selection that enters per-user Semantic Kernel loading.
- Remove the user from that group, leaving the stored
activeGroupOidunchanged. Include the case where the user has no other group memberships. - Send an ordinary chat message using the legacy UI or React V2.
- Repeat after refreshing the page and within an already-open chat session.
Expected Behavior
- A missing group or confirmed loss of membership invalidates the saved active-group preference without breaking otherwise-authorized chat.
- Clear the confirmed stale preference to JSON
null; do not automatically select another group or silently redirect a group-scoped operation into a different group. - Personal/global agent or model-only chat remains usable with no active group and with zero group memberships, subject to existing feature and authorization rules.
- Both legacy and React V2 represent the recovered no-group state consistently.
- Former group agents, actions, documents, and group-scoped conversations remain inaccessible. Explicit unauthorized group requests must retain their authorization failure behavior.
- Transient storage/authorization-service failures must not be mistaken for proof that membership was revoked or cause a valid selection to be erased.
- Recovery must preserve unrelated settings and a concurrent newly selected active group.
Actual Behavior
The supplied screenshot shows “Stream interrupted before any content was received” and “Stream interrupted: Something went wrong while streaming the response. Please try again.” The user reported this on every message until an administrator manually cleared the stale setting.
Impact
Group membership changes can prevent a user from continuing unrelated work in SimpleChat. Users with no remaining groups have no practical replacement group to select. An administrator currently needs to repair persisted user settings.
Notes
- Priority: P1, requested by paullizer.
- Assignee: paullizer.
- Estimated size: M (shared backend recovery, settings persistence, both UI bootstrap paths, and regression coverage).
- Inspected application version: 0.261.370 on the React V2 development line.
- Source inspection confirms that
application/single_app/semantic_kernel_loader.py::load_user_semantic_kernelcallsrequire_active_groupduring optional group-agent discovery but only catchesValueError(no active group).functions_group.py::assert_group_roleinstead raisesPermissionErrorfor revoked membership andLookupErrorfor a deleted group, allowing these errors to abort otherwise-independent agent loading. route_backend_groups.py::remove_memberremoves membership but does not clear the removed user's active-group preference.route_backend_v2.py::_resolve_active_scopefilters unauthorized group IDs from the returned UI scope but does not repair persisted settings.route_frontend_chats.py::chatsreads the raw active group for legacy page state.- Proposed scope: lazy, shared recovery when stale state is encountered, covering existing stale records as well as future membership changes; no bulk migration or automatic replacement group.
- Add regression coverage for removal/deletion, no active group, no remaining groups, valid memberships/roles, personal/global selections, unavailable group selections, authorization boundaries, transient failures, concurrent setting changes, streaming and non-streaming chat, and both UI bootstrap paths.
- Implementation has not started; root-cause evidence is source inspection plus the reported manual workaround, not a reproduced production trace.
- Duplicate searches for
activeGroupOid, active-group issues, and group-removal chat failures did not identify an existing issue for this failure.
- 主要语言
- Python
- 星标
- 157
- 派生
- 117
- 平均合并
- 3 小时 31 分钟
- 30 天内合并 PR
- 226
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/simplechat 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 84/100
microsoft/simplechat#1491 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 84/100
microsoft/simplechat#1370 ·
维护者通常 1 天内回复
-
Add conversation references and queued AI handoffs across chat, orchestration, and workflows可能已有人在做 @paullizer 于 1 天前认领。 未关闭Created By Copilot enhancement P2
microsoft/simplechat#1835 · 已指派 1 人 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 55/100
microsoft/simplechat#1804 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 48/100
microsoft/simplechat#1803 ·
维护者通常 1 天内回复
查看 microsoft/simplechat 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 72/100
slavakurilyak/awesome-ai-agents#845 ·
维护者通常 1 天内回复
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directory可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭difficulty:2 enhancement good first issue
难度 1/5 1-3 小时 新手友好度 92/100
MakazhanAlpamys/Soup#2178 ·
维护者通常 1 天内回复
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-values未关闭
难度 2/5 1-3 小时 新手友好度 75/100
scverse/rapids-singlecell#854 ·
维护者通常 1 天内回复
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGL可能已有人在做 @ninglinLiu 今天认领。 未关闭area:frontend backend:slang bug direction:input
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=False可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 13 天内回复