跳到主要内容

错误码

出问题时,Microbe Studio 会在消息之外报出一个稳定的错误码—— DETECT_REGION_TIMEOUTMAX_NODE_EXECUTIONS_EXCEEDEDFLOW_PACKAGE_SIGNATURE_INVALID。消息会翻译成你的语言;错误码永不改变,所以它才是你该搜索的东西,也是该写进缺陷报告的东西。

本页按你什么时候撞上它来组织,因为查的时候就是这样查的。

可重试与终结

下面有些错误标了可重试。意思是运行时自己可能再试一次这个操作——例如一次检测会一直轮询到超时。终结错误就停在那里,需要你改点什么。

这和节点自己的重试策略是两回事,也和 status 与 route 是两回事——什么都没找到的检测本身并不自动就是错误。如果某个"失败"让你意外,先读执行模型

当你在搭流程时

这些来自校验和编辑器。全部是终结的:没有任何东西会去重试一个编写期的错误。

图与连线

错误码什么意思该怎么办
FLOW_VALIDATION_ERRORValidate 找到了阻塞问题◀ Previous error / Next error ▶ 逐个走过
TRANSITION_NOT_FOUND某节点返回了一个没接线的 route为它发出的 route 补上或修好连线——最常见是检测节点上未接的 Failure 端口
EDGE_PORT_INVALID一条连线起自该节点并不存在的端口从一个有效的源端口重连
NODE_TYPE_UNSUPPORTED流程里带着这个版本不认识的节点类型删掉它,或更新节点——见遗留节点
STALE_STATE你的编辑被拒绝,因为编辑期间流程变了什么都没丢。重做一次

变量与表达式

错误码什么意思该怎么办
VARIABLE_NOT_DECLARED表达式用了一个没人声明的名字Flow Inputs… 里声明,或用 Variable 节点创建。用一个名字不等于声明它
VARIABLE_TYPE_INVALID已声明变量的类型不是 schema 接受的那些修正声明的类型
VARIABLE_SHADOWS_GLOBAL流程变量复用了保留的全局名给流程变量改名
TYPE_MISMATCH默认值或初始值违反了声明的类型通常是把 OCR 目标声明成 number 而不是 number?。把绑定 OCR 的变量声明为可空——读取失败写入空值,绝不编造 0
EXPRESSION_SYNTAX_ERROR表达式解析不了修语法
EXPRESSION_NOT_BOOLEAN一个条件求值出来不是真/假条件必须是布尔——要比较,不要只引用
EXPRESSION_EVALUATION_FAILED表达式解析通过但运行时炸了检查缺失值和除以零

循环

错误码什么意思该怎么办
LOOP_START_MISSING / LOOP_END_MISSING一个循环区缺了其中一个标记每个 Loop 都有编辑器管理的配对 Loop End——不要单独删掉一个
LOOP_BODY_NOT_CLOSED循环体从未到达它的 Loop End把循环体接通到 Loop End
LOOP_PAIR_AMBIGUOUS判断不出哪个 Loop End 属于哪个 Loop简化嵌套
LOOP_REGION_INVALID区域形状不是一个有效的循环重建这个循环,而不是手工修补
LOOP_MODE_INVALID循环模式不在接受的取值里选一个有效模式
LOOP_CONDITION_MISSING按条件驱动的循环没有条件给一个条件,或者改成固定次数
LOOP_CONTROL_OUTSIDE_LOOPBreakContinue 落在任何循环之外把它移进它本该控制的那个循环区里
MAX_ITERATIONS_INVALID迭代上限不是一个可用的数字设一个正整数

子流程

错误码什么意思该怎么办
SUBFLOW_NOT_FOUND一个 Sub Flow 节点指向已不存在的流程重新指向,或导入缺失的流程。在依赖查看器里显示为 missing
SUBFLOW_INVALID被引用的子流程不能当作子流程用打开子流程并校验它
FLOW_CIRCULAR_DEPENDENCY / SUBFLOW_RECURSION_DETECTED一个流程调用了自己,直接或经由一条链移除闭合这个环的那个引用——消息会点出这条链
SUBFLOW_DEPTH_EXCEEDED嵌套比允许的更深拍扁它。两三层几乎覆盖一切——见 Sub Flow
SUBFLOW_VARIABLE_CONFLICT子流程的一个输入与作用域里已有的名字冲突给这个输入改名

监控范围

错误码什么意思该怎么办
OBSERVER_FORBIDDEN_NODE一种不能待在被守望区域内的节点类型待在里面了把它移出去——见监控范围
OBSERVER_NESTED_MONITOR一个监控范围套在另一个监控范围里监控不嵌套。用一个区域
OBSERVER_SPEC_INVALID该范围的配置无效重建这个范围
SCOPE_PAIR_AMBIGUOUS / SCOPE_REGION_INVALID区域的几何解析不出来删掉再重新覆盖选区

区域、点与模板

错误码什么意思该怎么办
RECT_TOO_SMALL画出的矩形低于可用的最小尺寸画大一点
RECT_X_OVERFLOW / RECT_Y_OVERFLOW矩形跑到屏幕外面了在画面内重画
POINT_INVALID / POINT_OUT_OF_BOUNDS某个坐标不可用或在屏幕外在 Live Preview 上重新取点
TEMPLATE_NOT_FOUND某节点引用的模板素材不见了重拍,或重新导入流程包
TEMPLATE_QUALITY_TOO_LOW拍下的裁剪太小或太平淡,匹配不可靠重拍一个更大、更有辨识度的模板
TEMPLATE_CHECKSUM_MISMATCH存储的模板文件与其记录不符重拍或修复该素材
TEMPLATE_CAPTURE_FAILED拍摄本身失败了检查已附加的实例,然后重试

当流程在运行时

护栏——运行是故意停下的

这是运行时在保护你。全部终结。

错误码什么意思该怎么办
MAX_NODE_EXECUTIONS_EXCEEDED这次运行执行的节点数超过流程允许的量循环会成倍放大:12 个节点跑 200 轮约 2400 次。抬高 Max node executions…,或者去找一个意料之外的环
MAX_RUNTIME_DURATION_EXCEEDED这次运行超过了它的时间上限拆分工作,或抬高上限
MAX_CONSECUTIVE_FAILURES_EXCEEDED连续失败太多次,中间没有任何成功检测的"未找到"不会导致这个。去找一个反复失败的动作节点

检测

错误码可重试什么意思该怎么办
DETECT_IMAGE_NOT_FOUND模板没匹配上调整模板、阈值、搜索区域或超时。动阈值之前先跑 Test Node 读真实置信度
DETECT_AMBIGUOUS好几个候选都匹配上了,没有胜出者复查候选,或调阈值
DETECT_REGION_TIMEOUT一条 Check Region 规则在时限内始终没成立提高 timeoutMs、调整规则,或核实区域里实际有什么
DETECTION_ENGINE_FAILED匹配器本身失败了检查已附加实例和模板素材

OCR

错误码可重试什么意思该怎么办
FEATURE_OCR_UNAVAILABLEOCR 没装或没启用运行 Read Text 节点之前先安装并启用 OCR(Tesseract)。也检查流程的 ocrEnabled 开关——这是"Read Text 什么都不做"最常见的原因
OCR_LANGUAGE_MISSING请求的语言包没装装上那个 Tesseract 语言包,或选一个已有的语言
OCR_FAILEDOCR 调用失败检查 Settings 里的 OCR 可执行文件路径
OCR_EXTRACT_NO_MATCHOCR 读到了文字,但提取模式在里面什么都没匹配到拿你的模式去和 Text read result 里的原始读取结果对。如果原始文本就是错的,那是区域或内容类型错了——不是模式
OCR_REGEX_INVALID自定义模式编译不了修正正则
OCR_CONFIG_INVALIDOCR 设置不是一个可用的组合复查语言和内容类型

动作与输入

错误码可重试什么意思该怎么办
COORDINATE_SOURCE_UNAVAILABLE一个 Click 指向的 Find Image 节点在这条路径上还没产出匹配先跑那个 Find Image,或在点击前确认它匹配到了。复制粘贴来的 Click 通常就撞这个
COORDINATE_PROFILE_INVALID坐标配置不可用重新取目标
INPUT_FAILED模拟器拒绝了这次输入检查实例可达且处于前台
INPUT_COMMAND_TIMEOUT输入命令没在时限内完成检查模拟器负载
TEXT_EMPTYInput Text 没有可输入的内容给它文本,或一个非空的变量
TEXT_UNSUPPORTED_CHARACTER某个字符无法发送给模拟器去掉或转写它
TEXT_NOT_FOUND / TEXT_MATCH_INVALID文本匹配目标或规则不可用修正匹配配置
TEXT_MODE_UNSUPPORTED / TEXT_CLEAR_UNSUPPORTED请求的输入或清除模式不可用换一个受支持的模式
SWIPE_INVALIDSwipe 的几何不可用重画起点和终点
KEY_UNSUPPORTED那个键发不出去换一个键
WAIT_INVALID等待时长不可用设一个正的时长

Captcha

错误码可重试什么意思该怎么办
FEATURE_CAPTCHA_UNAVAILABLE这个版本里没有验证码求解器检查流程的 captcha 功能开关
CAPTCHA_UNSOLVED在允许的尝试次数内没解开挑战提高 Max attempts、检查挑战区域,或把 unsolved 输出接到"刷新再试"的路径上

模拟器与实例

错误码什么意思该怎么办
INSTANCE_NOT_ATTACHED该动作需要一个已附加的预览实例,但没有在 Live Preview 里附加一个
INSTANCE_NOT_FOUND被引用的实例不见了Add Instance 重新扫描
INSTANCE_OFFLINE实例不可达启动模拟器
INSTANCE_IDENTITY_AMBIGUOUS两个实例分不清检查 MuMu 的实例列表
INSTANCE_LAUNCH_FAILED / INSTANCE_SHUTDOWN_FAILED启动或关闭没生效直接检查 MuMu,然后重试
INSTANCE_ATTACH_FAILED / INSTANCE_DETACH_FAILED附加预览失败重新打开 Live Preview
INSTANCE_REGISTRY_PARSE_FAILED / INSTANCE_PLAYER_STATE_UNKNOWN读不出 MuMu 自己的状态重启 MuMu
MUMU_CLI_UNAVAILABLE找不到 mumu-cli.exe在 Settings 里设置路径——见排查 MuMu CLI
MUMU_CLI_INFO_FAILED / MUMU_CLI_ADB_FAILED / MUMU_CLI_CONTROL_FAILED一次 MuMu CLI 调用失败检查 CLI 路径以及 MuMu 是否在运行
MUMU_DISCONNECTED运行中途与 MuMu 的连接断了重新附加;看看模拟器是否重启过
SCREEN_CAPTURE_FAILED / FRAME_UNAVAILABLE采集不到画面检查实例在运行,且没有以阻碍采集的方式被最小化

当你在运维时

错误码什么意思该怎么办
QUEUE_FLOW_NOT_FOUND一个队列项指向已不存在的流程删掉该项或重新导入流程
QUEUE_RESOLUTION_MISMATCH流程/实例的分辨率对与你确认过的那一对不同你之前那次 "Add anyway" 覆盖的是你真正见过的那一对。重新确认——见 Flow Queue
SCHEDULE_NOT_FOUND计划任务不见了重新创建
SCHEDULE_INVALID计划任务的时间设置不可用检查重复方式、时间和时区
SCHEDULE_IMPORT_INVALID文件不是有效的 .muscheduler 导出重新导出
SCHEDULE_IMPORT_FLOW_MISSING文件里的流程在这台机器上不存在导入前为每一个选择替代
DEPLOYMENT_NOT_FOUND / DEPLOYMENT_START_FAILED / DEPLOYMENT_STOP_FAILED一次 deployment 操作没完成检查目标实例

包、许可与账户

错误码什么意思该怎么办
FLOW_PACKAGE_INVALID包文件读不出是一个包拿一份新的
FLOW_PACKAGE_SIGNATURE_INVALID签名校验失败——导出后被修改过,或不来自可信发布者不要导入。从原发布者处取新的一份
FLOW_PACKAGE_CHECKSUM_MISMATCH内容与清单不符文件损坏或被截断。重新下载
FLOW_PACKAGE_DEPENDENCY_MISSING包依赖的某个子流程缺失导入完整的包,而不是从里面挑一个流程
FLOW_PACKAGE_KEY_REQUIRED / FLOW_PACKAGE_KEY_INVALID受保护的包需要你没有的密钥,或密钥不对流程知识产权
FLOW_PACKAGE_IMPORT_FAILED / FLOW_PACKAGE_EXPORT_FAILED传输因其他原因失败检查磁盘空间和权限
FLOW_IMPORT_DUPLICATE_ID已经有一个同 id 的流程有意识地覆盖,或改名
FLOW_OWNERSHIP_FORBIDDEN你的账户不能使用这个流程看看这个流程属于谁
FLOW_LICENSE_EXPIRED一个有时限的 Flow License 到期了续期——续期是往剩余时间上累加
FLOW_AUTHORIZE_OFFLINE受保护的流程需要一次在线校验,而服务器不可达重新联网后再试
CAPABILITY_NOT_LICENSED你的许可不包含流程用到的某项能力检查账户上的能力清单
AUTH_REQUIRED你没有登录登录
AUTH_SERVER_UNAVAILABLE联系不上门户检查网络连接
FLOW_IN_USE / FLOW_EDIT_LOCKED流程正在运行,或在别处被打开停掉运行,或关掉另一个编辑器
ASSET_IN_USE该素材正被某个流程引用先移除那些引用

Advanced Captcha(AI)

错误码什么意思该怎么办
AI_MODEL_NOT_INSTALLED还没导入任何模型包通过 Settings → Advanced Captcha 下载并导入
AI_ARCHIVE_INVALID这个包读不出来重新下载
AI_ARCHIVE_UNTRUSTED这个包不是可信来源签名的不要导入
AI_ARCHIVE_INCOMPATIBLE这个包与当前版本不匹配取对应你版本的包
AI_INSTALL_FAILED导入失败检查磁盘空间
AI_RUNTIME_UNAVAILABLE本地 AI 运行时不可用重新执行安装
AI_INFERENCE_FAILED模型跑了但在这个挑战上失败没有 Advanced Captcha 时节点仍会走离线求解器——看看离线那条路能不能处理

已退役的节点族

PARALLEL_BRANCH_INVALIDPARALLEL_START_MISSINGPARALLEL_END_MISSINGPARALLEL_PAIR_AMBIGUOUSPARALLEL_REGION_INVALID 属于已退役的 Parallel 节点。如果你看到其中之一,说明流程里还带着那个节点。它从来没让任何东西并发过——见遗留节点,用监控范围替换它。

内部错误码

这些来自你所编写的流程之下的层次——schema 迁移、编辑器自己的持久化,以及 UI 与运行时之间的进程边界。你很少会见到,见到时的修法通常是"重启应用"或"带上错误码报告它"。

SCHEMA_INVALID · SCHEMA_VERSION_UNSUPPORTED · SCHEMA_MIGRATION_MISSING · SCHEMA_MIGRATION_AMBIGUOUS · SCHEMA_MIGRATION_FAILED · SCHEMA_MIGRATION_INVALID_OUTPUT · IPC_PROTOCOL_UNSUPPORTED · IPC_COMMAND_UNKNOWN · IPC_PAYLOAD_INVALID · IPC_TIMEOUT · PERSISTENCE_FAILED · AUTOSAVE_FAILED · EVENT_LOG_CORRUPT · SNAPSHOT_INVALID · REPLAY_MISMATCH · STATE_INVALID · UI_STATE_INVALID · PROJECT_NOT_FOUND · PROJECT_INVALID · PARAM_INVALID · OUTPUT_MAPPING_INVALID · MEMORY_SCOPE_INVALID · MONITOR_SPEC_INVALID · ASSIGNMENTS_EMPTY · SHARE_FORBIDDEN · STOP_REQUESTED · SCALE_INVALID · USER_ABORTED · REGION_NOT_FOUND · DETECTION_ENGINE_FAILED

怎样引用一个错误

复制错误码,不要复制翻译过的句子。属性面板里的 Copy Result 会把一个节点的完整测试结果放到剪贴板,那是你能附在报告里最有用的东西。

相关页面

  • 重试与失败 —— 在更长的超时、一条失败连线和一个重试策略之间做选择
  • 执行模型 —— 为什么"未找到"不是失败
  • 测试与校验 —— 在运行之前就抓住这些
  • FAQ —— 大家最常撞上的错误,附推理过程