Skip to content

[asr] 新建火山 2.0 应用默认资源 ID 鉴权失败 #128

@Cooper-X-Oak

Description

@Cooper-X-Oak

现象

  • 触发条件:OpenLess v1.2.8 中配置用户新建的火山引擎「豆包流式语音识别模型 2.0」应用,并继续使用设置页默认 Resource ID volc.bigasr.sauc.duration
  • 当前表现:ASR WebSocket 建连阶段返回 403 Forbidden,用户看到「ASR 连接失败 / connection failed」。
  • 证据:
    • v1.2.8 代码默认 Resource ID 是 volc.bigasr.sauc.duration,包括后端 VolcengineCredentials::default_resource_id() 和前端 ASR_DEFAULT_RESOURCE_ID
    • 本地握手矩阵验证:旧应用同时接受 volc.bigasr.sauc.durationvolc.seedasr.sauc.duration;新建 2.0 应用使用 volc.bigasr.sauc.duration 返回 403,改成 volc.seedasr.sauc.duration 后握手通过。
    • 用户侧截图显示资源 ID 改成 volc.seedasr.sauc.duration 后仍失败;结合 v1.2.8 设置页 CredentialField 的 debounce 保存实现,存在闭包读到旧 dirty=false 而跳过 setCredential 的风险,可能导致 UI 看似修改但后端仍读取旧值。

影响

  • 新用户按火山控制台新建 2.0 应用后,默认配置无法完成 ASR 鉴权,首启体验表现为语音识别不可用。
  • 已有旧应用用户不一定复现,因为旧应用可能兼容两种 Resource ID,导致问题在测试者本机不明显。
  • 设置页保存不稳定会放大排查难度:用户认为已改成新资源 ID,但实际本地 credentials.json 可能仍保留旧值。

建议接受标准

  • 新安装 / 无 Resource ID 配置时,Volcengine ASR 默认使用 volc.seedasr.sauc.duration
  • 设置页「资源 ID」输入后,即使通过 debounce 自动保存,也必须稳定写入本地凭据。
  • 手动填默认值、输入后失焦两条路径都能触发保存。
  • npm run build 通过。
  • Rust/Tauri 侧至少完成 Windows GNU 编译门禁。

TODO / 不确定项

  • 火山旧 1.0 应用是否仍需在文档中保留 volc.bigasr.sauc.duration 作为迁移说明,建议单独补文档,不阻塞本修复。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions