Appearance
错误码
【注意】本章只列出能在 Go 代码或响应体文案中溯源的错误码与文案。报告中已确证「Go 代码里不存在」的错误码集中放在 6.11 说明来源,不要当作可用错误码使用。
通用 / 框架级
| 错误码 | 含义 | 触发条件 |
|---|---|---|
200 | 成功 | — |
-1 | 业务失败;同时是登录失败码 | 通用业务失败、gRPC 失败、登录失败 |
0 | 成功码;也是登录签发 token 自身失败时的登录失败码 | gtoken 成功响应;极少走的登录失败分支 |
51 | GoFrame CodeInternalError | errors.New("xxx") 无错误码时由统一响应包装兜底 |
500 | HTTP 内部错误 | HTTP 驱动拦截通道增删改、驱动删除失败 |
401 | 未登录 | token 缺失或失效 |
30000000 | DASS3 接口异常 | response.Err 调用 |
30000002 | 内部错误 | 同上 |
30000004 | gRPC 客户端初始化失败,请检查网络连接 | 同上 |
30000006 | 连接无效 | 同上 |
30000008 | 输出测点添加失败 | 同上 |
30000010 | 输出测点更新失败 | 同上 |
30000012 | 测点不存在 | 同上 |
30000014 | 测点不合法 | 同上 |
30000016 | 设置云平台配置信息失败 | 同上 |
30000018 | 云平台已宕机 | 同上 |
30000020 | 密码字段解密失败 | 同上 |
【注意】
30000000系列码步长为 2,只在response.Err(code, err)被调用时出现,实际使用面很窄。
连接管理
| 错误码 / 文案 | 含义 | 触发条件 |
|---|---|---|
EmptyDeviceCode | 设备码为空 | 按设备码取主机地址时传空 |
EmptyCloudKey | CloudKey 为空 | 保存云配置 |
EmptyHost | 主机地址为空 | 同上 |
EmptyUserId | 用户 ID 为空 | 上下文无当前用户 |
NonexistentData | 数据不存在 | 连接查不到、更新影响 0 行、删除影响 0 行 |
ConnAlreadyExist | 连接已存在 | 同用户下 host+port 重复 |
OccupiedDeviceCode | 设备码已被使用 | 云边一体设置时设备码已被占用 |
InvalidIPv4Address | 无效的 IPv4 地址 | 主机地址合法性校验失败 |
OccupiedNickName | 别名已被使用 | 同用户下别名重复 |
InvalidNickName | 别名包含特殊字符 | 含星号、问号、小于号、大于号、竖线、冒号、双引号、正斜杠、反斜杠 |
当前机器[%v]设备码[%v]已由[%v]使用 | 设备码冲突 | 同用户下设备码已绑其它主机 |
设备码[%v]已由用户[%v]绑定至[%v],请使用其他设备码进行绑定 | 跨用户设备码冲突 | 云边一体 |
您所操作边缘智能终端管理平台版本[%v]过低,请升级软件重试 | 网关版本过低 | 版本校验失败 |
设备已离线,请稍后再试 | 设备离线 | gRPC 连接失败 |
连接被关闭,请重新添加该设备的连接 | 连接关闭 | 同上 |
连接超时 | gRPC 超时(拨号超时 10 秒) | 同上 |
用户 / 登录
| 错误码 / 文案 | 含义 | 触发条件 |
|---|---|---|
账号或密码不能为空 | 空值 | 登录账号或密码为空 |
账号或密码错误 | 认证失败 | 用户不存在或密码哈希不匹配(不区分,防枚举) |
账号[%v]已被锁定,请于[%v]后重试 | 账号级锁定 | 失败次数达到服务端阈值 |
当前设备已被锁定,请于[%v]后重试 | IP 级锁定 | 同 IP 失败次数达到服务端阈值 |
该账户为系统特殊账户,禁止注册 | 账号在黑名单 | 注册时账号命中服务端黑名单 |
账号不能为空 / 密码不能为空 / 两次密码不相同 | 注册校验 | 注册接口 |
账号已存在 | 重复注册 | 注册时已存在同名账号 |
用户不存在 | 更新用户 / 改密时找不到 | 用户更新接口 |
当天注册账户数量已达上限,请于[%v]后重试 | 注册上限 | 当日注册成功次数达上限 |
注册请求频繁,请稍后重试 | 注册频控 | 60 秒窗口内注册请求过多 |
采集服务
| 错误码 / 文案 | 含义 | 触发条件 |
|---|---|---|
参数不能为空 | 空 app | 服务命令 / 删除服务收到空数组 |
请求服务名不能为空 | app 缺失 | 服务存在性校验 |
服务不存在 | 服务不存在 | 上 / 下行状态查询不到 |
服务不存在<svc> | 历史回补服务不存在 | 历史数据回补 |
通道不存在 | 通道不存在 | 下行状态查询找不到通道 |
时间不正确 开始时间不能大于结束时间 | begin 大于 end | 历史数据回补 |
参数为空 | 参数为空 | 泛用 |
服务未启动 | gRPC Unavailable | 后端服务不可达 |
创建服务驱动配置不能为空 | para 为空 | 创建服务 |
ServiceNameExcessMaxLimit | 服务名超 11 字节 | 【存疑】该串来自设备端 gRPC,本仓库无此常量(待真机确认) |
采集通道
| 错误码 / 文案 | 含义 | 触发条件 |
|---|---|---|
默认通道不可操作 | HTTP 驱动服务不可操作通道 | 创建 / 更新 / 删除通道 |
APP:BOX:CHANNEL:CREATE | 创建拦截 / 失败标识 | 同上或 gRPC 建通道失败 |
APP:BOX:CHANNEL:UPDATE | 编辑拦截标识 | 同上 |
APP:BOX:CHANNEL:DELETE | 删除拦截标识 | 同上 |
不允许创建DEC通道 | 通道名为 dec | 创建通道 |
驱动名字不能为空 | 空 app | 通道命令 |
管道为空 | 空 channels | 通道命令 |
错误的 token 或已经过期 | 批量任务 token 失效 | 批量进度查询 |
找不到使用驱动 %s,名为 %s 的服务 | 批量建通道时服务不存在 | 批量建通道 |
不合法的通道文件: driver sheet 存在错误 | 模板 driver sheet 有问题 | 导入通道模板 |
不合法的通道文件: channel sheet 存在错误 | 模板 channel sheet 有问题 | 导入通道模板 |
通道名不得为空 | 通道名为空 | 导入通道模板 |
通道名不能为 driver 或 channel | 保留名 | 导入通道模板 |
点表(Sheet)名不能为 driver 或 channel | 保留名 | 导入通道模板 |
驱动 config.json 存在错误 | key-value 未成对 | 导入通道模板【存疑】精确触发行未定位(待真机确认) |
通道已存在 | 通道重复 | 【存疑】常量已定义但未见引用,实际应由设备端返回(待真机确认) |
28101403 | 通道重复码 | 【存疑】同上,常量已定义未引用(待真机确认) |
28101404 | DEC 通道码 | 【存疑】常量已定义未引用,但被备份恢复流程使用(待真机确认) |
采集测点 / 上传测点
| 错误码 / 文案 | 含义 | 触发条件 |
|---|---|---|
比例系数(FK) float类型,不能为0, 默认为1 | 比例系数非法 | FK 解析失败或为 0 |
比例系数不得为 0 | 比例系数为 0 | 文件导入 |
偏移量(FB) float类型,默认为0 | 偏移量非法 | FB 解析失败 |
量程上限(TV) float类型,默认为100 | 量程上限非法 | TV 解析失败 |
量程下限(BV) float类型,默认为0 | 量程下限非法 | BV 解析失败 |
tv <= bv 不合法 | 量程上限不大于下限 | TV 小于等于 BV |
分辨率不能为负整数 | 分辨率非法 | FQ 解析失败或为负 |
控制属性不能为空 | ae 为空 | JSON 新增测点 |
控制属性(AE) string类型,他是一个枚举类型,只能是 读、写、读写 | 控制属性非法 | 文件导入 |
int类型 , 必须不小于1024 | 测点 ID 非法 | 文件导入(服务端实际只拒绝负数) |
验证点名长度不能超过60 | 点名超长 | 文件导入 |
点名 string类型, 支持中文、支持数字、字母和特殊字符-、#、_、:、@ ,长度不大于60字节 | 点名含非法字符(如 .) | 文件导入 |
验证别名长度不能超过256 | 别名超长 | 文件导入 |
验证量纲长度不能超过12 | 量纲超长 | 文件导入 |
验证描述长度不能超过512 | 描述超长 | 文件导入 |
验证特征字长度不能超过16 | 特征字超长 | 文件导入 |
验证地址信息长度不能超过4096 | 地址信息超长 | 文件导入与上传点新增/更新 |
压缩类型 string类型…只能是死区、线性、无压缩 | 压缩类型非法 | 文件导入 |
显示格式 uint类型,默认为2,必须是正整数 | 显示格式非法 | 文件导入 |
死区 float类型,默认为0.2 非负数 | 死区非法 | 文件导入 |
死区类型 string类型…只能是PCT、ENG | 死区类型非法 | 文件导入 |
点的类型 string类型…只能是模拟量、开关量、短整数、长整数、浮点数、长整型、文本、二进制 | 点的类型非法 | 文件导入 |
invalid filter RT: %s | 查询筛选的点的类型非法 | 测点查询 |
invalid filter DS: %s | 查询筛选的数据状态非法 | 测点查询 |
点表文件不包含任何工作簿 | 导入空 xlsx | 测点 / 上传点导入 |
数据不合法 | 报警相关参数非法 | 报警规则接口 |
ID不能为空 | 上传点导入缺 ID | 上传点导入 |
同步属性不能为空 | 上传点导入缺同步属性 | 上传点导入 |
量程上限不能为空 / 量程下限不能为空 / 比例系数不能为空 / 偏移量不能为空 | 上传点导入缺字段 | 上传点导入 |
同步属性未知 / 同步属性不能为空 | 同步属性非法 / 为空 | 【存疑】校验常量在控制器中未见引用(待真机确认) |
测点已存在 | 计算点重复 | 计算点 |
计算点的id不能修改 | 计算点 ID 被改 | 计算点 |
不存在该点类型 / 不存在该计算类型 | 计算点类型非法 | 计算点 |
计算公式长度超过限制4096 | 计算公式超长 | 计算点 |
应用包管理
控制器内联文案:
| 错误码 / 文案 | 含义 | 触发条件 |
|---|---|---|
驱动不存在 | 动态表单查不到驱动 | 驱动动态表单 |
系统服务不存在 | 查不到系统服务表单 | 驱动动态表单(type=system) |
应用下载信息获取失败 | 在线应用信息获取失败 | 在线应用 |
未找到应用列表接口 | 应用市场 URL 未配置 | 应用市场 |
访问应用列表接口失败 | 应用市场请求失败 | 应用市场 |
当前设备上已存在该版本[%v]驱动[%v],无需下载或导入 | 版本相同 | 驱动包上传 |
驱动不支持跨大版本升(降)级,请删除已有驱动后重试 | 主版本不同 | 驱动包上传 |
版本验证失败 | 版本号格式无法解析主版本 | 驱动包上传 |
平台验证失败 | 包平台与设备平台不符 | 驱动包上传 |
升级包版本不兼容,请检查后重试 | 版本校验失败 | 驱动包上传 |
上传包类型验证失败,请上传系统升级包 | 类型校验失败 | 驱动包上传 |
类型不存在 | Version.ini 的 type 不是 das / upload / system | 驱动包上传 |
请选择需要上传的文件 | file 为空 | 驱动包上传 |
备份恢复
【注意】以下错误码来自设计层定义,未在服务端代码常量中确证,使用时请以真机返回为准。
| 错误码 | 含义 | 触发条件 |
|---|---|---|
200 | 成功 | — |
-1 | 失败(通用) | 设备忙 / 任务不存在 |
400 | 请求参数错误 | analyze 文件非 .xlsx 或为空;execute policies 非法 |
403 | 禁止 | execute 缺 confirm:true;下载错误文件名不在白名单 |
404 | 不存在 | plan token 过期或跨设备;progress token 无效 |
409 | 冲突(设备忙) | 同设备已有进行中的备份 / 恢复 / 分析任务 |
410 | token 过期 | execute 的 recover_token 已过期 |
422 | 解析 / 业务校验失败 | 备份文件损坏、版本过高、设备不存在 |
28101104 | 文件格式不合法(v1 恢复) | v1 恢复 Excel 打开失败 |
28101404 | 默认通道 DEC 校验失败(v1 恢复) | v1 恢复通道检测 |
数据镜像(设计层错误码,当前未使用)
| 错误码 | 场景 | 现状 |
|---|---|---|
21001 | 参数校验失败 | 全仓库无命中;控制器统一返回 -1 + 字符串 |
21002 | 名称已存在 | 同上 |
21003 | IP / 端口格式错误 | 同上 |
21004 | 目标资源不存在 | 同上 |
21005 | 链接检测失败 | 同上 |
21006 | 导入文件格式错误 | 同上 |
21007 | 应用配置失败 | 同上 |
21008 | 并发操作被拒 | 同上(并发互斥锁在控制器未实现) |
响应恒成功的接口(无错误码,必须回查)
以下接口的设备端调用结果被完全丢弃,响应恒为成功,不能以响应判断成败:
| 接口 | 现象 |
|---|---|
POST /config/das/channel/cmd(restart 分支) | err.code 恒为 0、msg 恒为空 |
POST /config/upoint/insert | 恒返回成功 |
POST /config/upoint/update | 恒返回成功 |
DELETE /config/upoint/delete | 恒返回成功 |
DELETE /config/upoint/clear | 恒返回成功(msg 为 CLEAR_SUCCESS) |
POST /config/point/upload | 恒返回 {"err":{"code":200,"msg":"ok"}} |
POST /config/point/erase | 【存疑】是否同属此列未确证(待真机确认) |
统一规避方式:写操作完成后,用下列只读接口回查真实状态。
| 写操作 | 回查接口 |
|---|---|
| 通道命令 / 通道增删 | POST /config/das/channel/list/{dc}、GET /config/das/tree/{dc} |
| 上传点增删改 / 批量生成上传点 | POST /config/upoint/list/{dc} |
| 服务增删改 / 命令 | GET /config/das/tree/{dc}、GET /config/das/state/{dc} |
| 测点导入 / 增删改 | POST /config/point/select/{dc} |
报告中已确证「代码里不存在」的错误码(仅说明来源)
以下错误码在现有文档中出现过,但在 DASSConsole 的 Go 代码中不存在,本指南不将其列为可用错误码:
| 错误码族 | 现有文档中的来源 | 实际情况 |
|---|---|---|
SVC_xxx / CHL_xxx | 服务管理、通道管理接口文档 | 全仓库检索无命中,属设计层编号,未被使用 |
21001 ~ 21008 | 数据镜像接口文档 | 代码中不存在,控制器统一返回 -1 + 字符串 |
20001、40001 ~ 50701 | 应用管理接口文档 | 代码中不存在,由设备端 gRPC 服务返回,控制器只做字符串透传 |
【注意】真正要处理的错误码是
200、-1、51、401、500、30000000系列,以及各接口的错误文案。判成败建议同时看code与msg。
帮助中心