Skip to content

Linux volcengine bigasr api_key mode fails with 45000010 AuthenticationError #931

Closed

Description

@linonetwo

Summary

On Linux, OpenLess volcengine ASR with api_key auth consistently fails with 45000010 AuthenticationError, even when the same Ark API key is valid and actively used.

Environment

  • OS: Linux
  • OpenLess: current desktop build
  • ASR provider: volcengine (bigasr)
  • Auth mode: api_key
  • Resource ID tested:
    • volc.seedasr.sauc.duration (default)
    • volc.bigasr.sauc.duration (A/B test)

Observed behavior

Each dictation attempt reaches:

  • recorder started
  • ASR connected
  • session started

Then fails immediately with:

  • error frame code=45000010
  • AuthenticationError
  • message: The API key or AK/SK in the request is missing or invalid.

Reproduction

  1. Configure ASR provider as volcengine.
  2. Set auth mode to api_key.
  3. Fill API key and Resource ID (volc.seedasr.sauc.duration).
  4. Trigger dictation (Right Alt or openless --toggle-dictation).
  5. Session starts then fails with 45000010.

Source-level findings

I verified current source paths:

  • API-key mode endpoint:
    • src-tauri/src/asr/volcengine.rs
    • ENDPOINT_API_KEY = wss://openspeech.bytedance.com/api/v3/plan/sauc/bigmodel_async
  • API-key header wiring:
    • X-Api-Key in build_connect_request for VolcengineAuthMode::ApiKey
  • Default resource ID:
    • volc.seedasr.sauc.duration
  • Settings UI mapping looks correct:
    • volcengine.auth_mode, volcengine.api_key, volcengine.resource_id

A/B test result

Changing only resourceId from volc.seedasr.sauc.duration to volc.bigasr.sauc.duration still returns the same 45000010 AuthenticationError (not a different resource-grant error).

Important checks already done

  • API key was regenerated under target project and actively used.
  • Project switch and key recreation repeated.
  • Free authorization flow in Volc speech console completed.
  • OpenLess keyring credentials were reset/restored; issue persists.
  • CLI trigger path (openless --toggle-dictation) reproduces same failure.

Latest request IDs (for backend trace)

  • 021786027527040c03100eb43b2c5f2b8bc80f...
  • 0217860275287052776333f3b283eee8f5b1f8...
  • 0217860275299011fabb13063b3e354601db29...

Request

Please help confirm whether current volcengine + api_key path is still valid for bigasr on Linux, and whether endpoint/header/resource expectations have changed.

If possible, please provide a known-good matrix for:

  • auth_mode
  • websocket endpoint
  • required auth headers
  • resource_id format

Activity

  1. self-assigned this
    on Aug 9, 2026
  2. H-Chris233 commented on Aug 9, 2026

    @H-Chris233
    Collaborator

    我来解决

  3. linonetwo commented on Aug 21, 2026

    @linonetwo
    Author

    Follow-up after re-checking local config/logs and creating a fresh key in Volc console.

    Current local config snapshot

    • activeAsrProvider: volcengine
    • activeLlmProvider: ark
    • dictation hotkey still active (Right Alt path)

    Current runtime Volcengine credential snapshot (from keyring payload)

    • authMode: api_key
    • resourceId: volc.seedasr.sauc.duration
    • apiKey fingerprint (masked): prefix ark-791ad3de, suffix 62-a94b3, length 46

    Latest failure logs

    Recent startup + dictation attempts still fail at ASR session open:

    • open ASR session failed: 凭据被拒(401)
    • The previous 45000010/AuthenticationError behavior remains reproducible in historical runs.

    Representative lines (latest period in current log):

    • 2026-08-21T11:45:55... recorder started (asr=volcengine, phase=Starting)
    • 2026-08-21T11:45:55... open ASR session failed: 凭据被拒(401)
    • 2026-08-21T11:45:56... recorder started (asr=volcengine, phase=Starting)
    • 2026-08-21T11:45:56... open ASR session failed: 凭据被拒(401)

    Volc console status update

    I created a fresh key under project volcengine_standalone_project_2000006170_platform_:

    • Name: api-key-20260822024730
    • Resource ID row: apikey-20260822024738-7rpp6
    • Status: active, permission: all

    At the time of this note, local runtime snapshot still shows the old key fingerprint above, so app-side key switching/persistence may also be part of the user-visible confusion.

    Please advise expected resourceId semantics for the volcengine + api_key path in OpenLess (service-level volc.seedasr... vs key-row apikey-...) and whether 401 should be mapped with additional diagnostics to reduce ambiguity.

  4. linonetwo commented on Aug 23, 2026

    @linonetwo
    Author

    补充一个可复现的正确用法(中文),供后续排查者快速定位:

    结论(先看)

    volcengine 的 api_key 模式,建议使用豆包语音新版控制台里的 API Key,
    而不是方舟(Ark)控制台的通用大模型 API Key。

    正确页面

    1. 语音应用页:
      https://console.volcengine.com/speech/app
    2. 语音新版 API Key 管理页:
      https://console.volcengine.com/speech/new/setting/apikeys?projectName=default

    在控制台里的点击路径(中文)

    从 https://console.volcengine.com/speech/app 进入后:

    1. 左侧导航进入「豆包语音」
    2. 进入「应用管理」
    3. 在目标应用行确认 APP ID(例如与当前业务对应的应用)
    4. 切到「新版」后,进入「API Key」
    5. 在「API Key 管理」表格中:
      • 可点击“眼睛/复制”图标查看或复制 key
      • 可点击「创建API Key」新建并切换使用

    OpenLess 配置建议

    • authMode: api_key
    • resourceId: 继续使用 volc.seedasr.sauc.duration(除非官方文档另有要求)
    • volcengineApiKey: 填写上面“豆包语音新版控制台 API Key 管理”页中的 key

    额外提示

    该页有提示:在“全部资源”视图下默认只展示 Default 项目的 API Key;
    若目标 key 不在列表中,需要先切换到对应项目再查看。

  5. H-Chris233 commented on Aug 23, 2026

    @H-Chris233
    Collaborator

    卧槽这字节
    整这么多新版新版
    崩溃了要

  6. linonetwo commented on Aug 23, 2026

    @linonetwo
    Author

    你可能误会了,我只是分享一下到哪里能找到这个控制台,没说它更新。反正我找是找了老半天,所以放在这边,供别人或者以后的 AI 搜到能够直接用。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions