Skip to content

[Bug] ObjectQL Adapter field name mapping error: camelCase vs snake_case causes 'Credential account not found' on sign-in #893

Closed

Description

@hotlong

Bug Description

注册用户后,使用邮箱密码登录时出现错误提示:

2026-03-09T09:47:20.241Z ERROR [Better Auth]: Credential account not found { email: 'zhuangjianguo@gmail.com' }

数据库数据示例

"sys_user": [
  {
    "id": "sys_user-1773049618228-1",
    "createdAt": "2026-03-09T09:46:58.228Z",
    "updatedAt": "2026-03-09T09:46:58.228Z",
    "email": "zhuangjianguo@gmail.com",
    "name": "建国庄",
    "emailVerified": false,
    "created_at": "2026-03-09T09:46:58.228Z",
    "updated_at": "2026-03-09T09:46:58.228Z"
  }
],
"sys_account": [
  {
    "id": "sys_account-1773049618228-1",
    "createdAt": "2026-03-09T09:46:58.228Z",
    "updatedAt": "2026-03-09T09:46:58.228Z",
    "userId": "sys_user-1773049618228-1",
    "providerId": "credential",
    "accountId": "sys_user-1773049618228-1",
    "password": "36ff5c34c9f42b59ca42bdfbb591848d:6c67ab1e18170a7671840499ba9d632d5e5e140d483c4bc2f4f34ac13493fd10108fe55fca441cc378dc2e5a2805d836048550c530e43933866a8abd7b6f9733",
    "created_at": "2026-03-09T09:46:58.228Z",
    "updated_at": "2026-03-09T09:46:58.228Z"
  }
],

现象与分析

  • 注册和登录流程后,账号数据被正确存入数据库,且字段名为 camelCase(如 providerId, accountId)。
  • ObjectStack 的 auth-account.object.ts schema 定义字段为 snake_case:provider_id, account_id。
  • Better-auth 查询时使用 camelCase 字段,ObjectQL adapter 无字段名转换,因此 findOne/filter 查询不能正确匹配。

导致登录时无法查找正确的账号记录,出现 'Credential account not found' 错误。

期待行为

  • ObjectQL adapter 在写入和查询时应实现 camelCase ↔ snake_case 字段名自动转换,保证数据读写一致。
  • 登录流程可正确查找账号,不再出现 'Credential account not found'。

解决建议

  • 在 objectql-adapter.ts 的 convertWhere 和相关读写函数中增加字段名转换实现。
  • 可参考 lodash.camelCase/snakeCase 实现双向映射。

请确认修复后同步测试并更新相关 issue。


  • 数据库结构与 adapter 字段名映射不一致
  • 登录流程查找账号失败
  • 修复 adapter,实现字段名一致性

相关代码:

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions