Skip to content

[Bug] Mounting Tencent Weiyun storage causes nil pointer panic — blocks all storage operations #9551

@Su-Qingmu

Description

@Su-Qingmu

Please make sure of the following things

  • I have read the documentation.
    我已经阅读了文档

  • I'm sure there are no duplicate issues or discussions.
    我确定没有重复的issue或讨论。

  • I'm sure it's due to AList and not something else(such as Network ,Dependencies or Operational).
    我确定是AList的问题,而不是其他原因(例如网络依赖操作)。

  • I'm sure this issue is not fixed in the latest version.
    我确定这个问题在最新版本中没有被修复。

AList Version / AList 版本

v3.59.0、v3.61.0

Driver used / 使用的存储驱动

微云(weiyun)

Describe the bug / 问题描述

Bug Description

After upgrading to AList v3.59.0, mounting Tencent Weiyun (腾讯微云) storage causes a nil pointer panic, completely blocking all storage initialization. The panic originates from the upstream SDK github.com/foxxorcat/weiyun-sdk-go@v0.1.3.

Steps to Reproduce

  1. Install AList v3.59.0
  2. Add a new Tencent Weiyun storage driver
  3. Fill in credentials (cookies from Weiyun web)
  4. Click "Save" → the admin panel crashes with a nil pointer panic

Error Trace

[panic] err: runtime error: invalid memory address or nil pointer dereference github.com/foxxorcat/weiyun-sdk-go.(*Resp).HasError(...) /go/pkg/mod/github.com/foxxorcat/weiyun-sdk-go@v0.1.3/types.go:38 github.com/foxxorcat/weiyun-sdk-go.(*WeiYunClient).request(...) github.com/foxxorcat/weiyun-sdk-go.(*WeiYunClient).DiskUserInfoGet(...) github.com/alist-org/alist/v3/drivers/weiyun.(*WeiYun).Init(...) /source/drivers/weiyun/driver.go:79 +0x288

### Root Cause

The upstream SDK `foxxorcat/weiyun-sdk-go` has a bug in `types.go:38` — `HasError()` does not check if `r.Data` is nil before accessing `r.Data.RspHeader`.

### Environment

- **AList Version:** v3.59.0 (WebVersion: 3.59.0, Built At: 2026-04-14)
- **SDK:** github.com/foxxorcat/weiyun-sdk-go@v0.1.3
- **Storage Driver:** Tencent Weiyun (腾讯微云)

### References

- [OpenListTeam/OpenList#1833](https://github.com/OpenListTeam/OpenList/issues/1833) — same panic reported
- [OpenListTeam Discussion#1888](https://github.com/orgs/OpenListTeam/discussions/1888) — same issue
- Upstream SDK bug: [foxxorcat/weiyun-sdk-go bug report](https://github.com/foxxorcat/weiyun-sdk-go/issues)

### Possible Solutions

1. Wait for upstream SDK fix and bump the dependency
2. AList-side defensive wrapper in weiyun driver that recovers from the panic

### Reproduction / 复现链接

## 无法提供公开复现链接。此bug需要:
1. 有效的微云账号(微信登录)
2. 微云API返回错误/空响应(不可预测)
3. 本地编译AList并触发storage初始化
<img width="879" height="631" alt="Image" src="https://github.com/user-attachments/assets/a2351b5b-f93b-4cc1-8e73-843522fc7d82" />

<img width="1169" height="609" alt="Image" src="https://github.com/user-attachments/assets/4ed853bd-f83a-43db-9de5-8354d59c5d43" />

### Config / 配置

{
  "version": "v3.59.0",  #and v3.61.0
  "driver": "WeiYun",
  "mount_path": "/微云",
  "addition": {
    "root_folder_id": "",
    "cookies": "***已脱敏***",
    "order_by": "name",
    "order_direction": "asc"
  }
}

### Logs / 日志

v3.59.0
[2026-06-03 10:41:38] panic init storage: [panic] err: runtime error: invalid memory address or nil pointer dereference
github.com/foxxorcat/weiyun-sdk-go.(*Resp).HasError(...)
  /go/pkg/mod/github.com/foxxorcat/weiyun-sdk-go@v0.1.3/types.go:38
github.com/foxxorcat/weiyun-sdk-go.(*WeiYunClient).DiskUserInfoGet(...)
github.com/alist-org/alist/v3/drivers/weiyun.(*WeiYun).Init(...)
  /source/drivers/weiyun/driver.go:79 +0x288

v3.61.0
[2026-06-03 02:09:03] failed get enabled storages: authorization has expired
failed init storage
github.com/alist-org/alist/v3/internal/op.initStorage
  /home/runner/work/alist/alist/internal/op/storage.go:156
[36mINFO[0m[2026-06-03 02:09:04] success load storage: [/微云], driver: [WeiYun]

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    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