Reopening a failed durable session returns opaque internal_error
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 52/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- javascript, rust, wasm
调研方向
从复现中描述的 durable-session openSession/getSession 生命周期和 RivetKit actor API 开始;使用受限的 JavaScript 运行时预算复现失败会话的重新打开路径。完成标准是:重新打开能够恢复或重置失败的适配器,或者返回包含已存储序列化失败信息的类型化 session_failed 错误,而不是 internal_error。
由索引模型根据 Issue 内容生成。
描述
Problem
A durable session can enter state.status === "failed" after its ACP adapter exits during a prompt—for example, after exceeding limits.jsRuntime.cpuTimeLimitMs. getSession({ sessionId }) correctly preserves a useful serialized failure such as prompt_interrupted.
Calling openSession(...) again with the same durable sessionId does not restore or reset the adapter. Through the RivetKit actor API it instead returns only:
group=rivetkit code=internal_error message="An internal error occurred"
The stored failure explaining why the session cannot be reopened is lost at the action boundary. A fresh session on the same actor still opens successfully.
Expected behavior
One of the following would make this lifecycle recoverable:
openSessionrestores or resets a session whose durable state isfailed; or- it returns a typed terminal error such as
session_failed, including the stored serialized failure and documenting that callers must calldeleteSessionbefore recreating it.
It should not collapse this state into a generic internal_error.
Reproduction outline
- Create a durable Pi session with a stable
sessionId. - Cause the adapter to exit during a prompt, such as by using a small JavaScript CPU-time budget.
- Confirm
getSession({ sessionId })reportsstate.status === "failed". - Call
openSessionagain with the samesessionIdand original options. - Observe the opaque RivetKit
internal_error. - Open a new session ID and observe that it succeeds.
Observed with @rivet-dev/[email protected] on the RivetKit actor path.
- 主要语言
- Rust
- 星标
- 4.7k
- 派生
- 263
- 平均合并
- 8 小时 57 分钟
- 30 天内合并 PR
- 30
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
rivet-dev/agentos 的其他 Issue
-
Python edits to filesystem.writeFile-created files are reverted by shadow reconciliation可能已有人在做 @ankssjain 于 3 天前认领。 未关闭
难度 4/5 3-5 天 新手友好度 20/100
rivet-dev/agentos#2022 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 3/5 半天 新手友好度 32/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 45/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 66/100
rivet-dev/agentos#1994 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 42/100
维护者通常 1 天内回复
查看 rivet-dev/agentos 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
mishraprafful/multihull#150 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 70/100
voidzero-dev/vite-plus#2970 ·
维护者通常 1 天内回复
-
ai_p2 comp-parquet-reader-v3
难度 2/5 半天 新手友好度 66/100
ClickHouse/ClickHouse#124986 ·
维护者通常 1 天内回复
-
bug(ktuner): exporter directories hide daemon processes可能已有人在做 @iloveeyjafjalla 今天认领。 未关闭component:ktuner
难度 2/5 1-3 小时 新手友好度 62/100
agentic-os-org/ANOLISA#6905 · 1 条评论 ·
维护者通常 1 天内回复
-
[Feature]: [P3] engine-rs: the package source hash should ignore line endings and untracked files未关闭
难度 2/5 1-3 小时 新手友好度 70/100
maniator/verticopolis#880 ·
维护者通常 1 天内回复