1. 报错详细

05-27 14:54:21 [ERROR] nonebot | QQ | Error while setup websocket to wss://api.sgroup.qq.com/websocket. Trying to reconnect...
Traceback (most recent call last):
File "/Users/xiayuan/Documents/Code/modernia-bot/bot.py", line 17, in <module>
nonebot.run()
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/nonebot/__init__.py", line 337, in run
get_driver().run(*args, **kwargs)
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/nonebot/drivers/fastapi.py", line 187, in run
uvicorn.run(
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/uvicorn/main.py", line 580, in run
server.run()
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/runners.py", line 194, in run
return runner.run(main)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
> File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/nonebot/adapters/qq/adapter.py", line 200, in _forward_ws
async with self.websocket(request) as ws:
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/contextlib.py", line 214, in __aenter__
return await anext(self.gen)
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/nonebot/internal/adapter/adapter.py", line 99, in websocket
async with self.driver.websocket(setup) as ws:
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/contextlib.py", line 214, in __aenter__
return await anext(self.gen)
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/nonebot/drivers/websockets.py", line 81, in websocket
async with connection as ws:
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/websockets/legacy/client.py", line 633, in __aenter__
return await self
File "/Users/xiayuan/Documents/Code/modernia-bot/.venv/lib/python3.13/site-packages/websockets/legacy/client.py", line 652, in __await_impl__
_transport, protocol = await self._create_connection()
File "uvloop/loop.pyx", line 2088, in create_connection
raise
File "uvloop/loop.pyx", line 2083, in uvloop.loop.Loop.create_connection
await ssl_waiter
File "uvloop/sslproto.pyx", line 517, in uvloop.loop.SSLProtocol._on_handshake_complete
raise handshake_exc
File "uvloop/sslproto.pyx", line 499, in uvloop.loop.SSLProtocol._do_handshake
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/ssl.py", line 951, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1020)

问题分析(来自GPT):

这是一个典型的 SSL 证书验证失败 错误,原因是 NoneBot 的 QQ 适配器尝试连接 wss://api.sgroup.qq.com/websocket 时,发现返回的证书链中包含了自签名证书(self-signed certificate),而你的 Python 解释器出于安全考虑默认拒绝了它。

这通常在以下几种情况下出现:

系统或 Python 没有正确的 CA 根证书列表(在 macOS 上尤其常见)。

你本地或中间代理劫持了 SSL 流量并使用了自签名证书(比如公司内网、某些防火墙、某些 VPN)。

QQ 的服务器有问题,但可能性较小。

解决办法

使用 Python 安装证书工具(macOS 推荐)

你是在 macOS 下运行的 Python 3.13,可以尝试运行:

/Applications/Python\ 3.13/Install\ Certificates.command

这个命令会安装或修复 Python 使用的系统根证书,解决大部分 macOS 上的 CERTIFICATE_VERIFY_FAILED 问题。

其他关键词

nonebot2连接报错

QQ机器人websocket连接报错

【nonebot2】QQ适配器websocket连接报错的更多相关文章

  1. 解决oracle服务器重启之后连接报错的问题

    DB服务器重启之后再连接报错如下: 原因是重启之后listener.ora被还原成初始文件,sid被清空. 解决步骤: 1.查看监听服务和数据库服务: 由此找到listener.ora文件的路径:D: ...

  2. 监听报错 TNS-00525: Insufficient privilege for operation 11gR2 + 连接报错ORA-12537: TNS:connection closed

    1.TNS-00525: Insufficient privilege for operation Started with pid= Listening on: (DESCRIPTION=(ADDR ...

  3. Oracle SQL Developer连接报错(ORA-12505)

    Oracle SQL Developer连接报错(ORA-12505) 之前我的Oracle数据库出现问题,费大波周折终于弄好了,今天又创建了一个DBA管理员的连接方式出现问题,本人现在把解决方案分享 ...

  4. 启动tomcat直接报错:org.apache.tomcat.util.digester.Digester startElement

    今天很奇怪,自己手动搭建了一个ssm(spring+springmvc+mybatis)的项目,然后添加到tomcat下,启动直接报错: 2017-3-19 9:24:47 org.apache.to ...

  5. Jmeter录制脚本过程及Could not create script recorder报错、您的连接不是私密连接报错

    转载自    https://www.cnblogs.com/wwho/p/7173172.html Jmeter录制脚本过程及Could not create script recorder报错.您 ...

  6. Oracle 12c SQL Developer连接报错(ORA-12505)

    Oracle 12c SQL Developer连接报错(ORA-12505) 连接时报错码:Listener refused the connection with following error: ...

  7. 二、Jmeter录制脚本过程及Could not create script recorder报错、您的连接不是私密连接报错

    两个报错:Could not create script recorder报错和您的连接不是私密连接报错 1.录制过程 * 打开jmeter * 点击Templated,选择Recoding模版 * ...

  8. ssh连接报错Write failed: Broken pipe Resource temporarily unavailable

    问题描述 使用root连接服务器正常,切换普通用户连接报错 具体报错如下:Write failed: Broken pipe 或者:failed to execute /bin/bash: Resou ...

  9. Mysql远程连接报错:SQL Error (1130): Host '192.168.61.128' is not allowed to connect to this MySQL server

    Mysql远程连接报错:SQL Error (1130): Host '192.168.0.18' is not allowed to connect to this MySQL server     ...

  10. Python 字符串与数字拼接报错

    Python 不像 JS 或者 PHP 这种弱类型语言里在字符串连接时会自动转换类型,而是直接报错. 如: 上述是Python 字符串与数字拼接报错,解决办法是:使用bytes函数把int型转换为st ...

随机推荐

  1. docx4j转换pdf样式问题~Java Libreoffice转换pdf

    背景 本篇文章主要是介绍我在使用docx4j过程中遇到的问题,并最终如何通过Libreoffice来实现pdf的转换. 问题 在使用docx4j转换pdf过程中发现word文档中表格.加粗样式无法实现 ...

  2. 如何通过物理备份将线下SQL Server迁移到阿里云RDS for SQL Server

    简介   物理备份迁移是将SQL Server数据库迁移至阿里云RDS的推荐方法.此方案能够确保数据完整性,同时显著降低迁移过程中的风险及停机时间.相较于逻辑导出导入或第三方工具等其他迁移方式,物理备 ...

  3. 《机器人SLAM导航核心技术与实战》第1季:第5章_机器人主机

    <机器人SLAM导航核心技术与实战>第1季:第5章_机器人主机 视频讲解 [第1季]5.第5章_机器人主机-视频讲解 [第1季]5.1.第5章_机器人主机_X86与ARM主机对比-视频讲解 ...

  4. 从零创建npm依赖,只需执行一条命令

    由来 最近在弄新的npm依赖,但是发现没有都从头创建项目实属有点儿麻烦,然后我找了之前开发的依赖,将多余代码删除了作为初始化的项目.于是~为什么不弄个模版,每次只需要初始化模版即可,所以就有了这个模版 ...

  5. AI时代:大模型开发framework之langchain和huggingface

    langchain: 提供了大模型相关应用开发的所有便利. https://python.langchain.com/docs/get_started/introduction Build your ...

  6. robotframework之数据驱动

    用robotframework做接口自动化时,如果执行用例条数比较多时,需要把用例存到表格当中,通过数据驱动读取表格内容. 一.引入第三方库 数据驱动的第三方库:DataDriver 直接在setti ...

  7. 有的时候,会遇到DataGrid里面嵌套DataGrid(重叠嵌套),然后里面的鼠标滚轮无法响应外面的滚动,为此记录下解决方案

    有的时候,会遇到DataGrid里面嵌套DataGrid(重叠嵌套),然后里面的鼠标滚轮无法响应外面的滚动,为此记录下解决方案 本实例是在DataGrid的详情行里再嵌入一个DataGrid,模拟重叠 ...

  8. Harmony 动态路由框架:TheRouter 开源

    TheRouter 是一个用于移动端APP,包括 Android.iOS.Harmony 三端的模块化.组件化开发的一整套解决方案框架.提供了三端高一致性,对移动端开发者更友好,让开发人员更适应,使用 ...

  9. 基于Vue3搭建ChantGPT前后端端源码及搭建教程-官方接口

    ChantGPT很多,网上很多说的ChantGPT搭建及源码都是假的,无法使用的,自己研究了好几天,搞定了基于Vue3搭建ChantGPT前后端端源码及搭建教程,现在分享出来,有喜欢的朋友自行下载搭建 ...

  10. vue3 基础-API-watch 和 watchEffect

    前篇对 computed 属性如何在 api 中基本使用, 即从 vue 中引入, 然后通过直接传函数或者传对象的方式, 开箱即用, 非常清晰易懂. 本篇继续来对之前的 watch 进行扩展使用啦. ...