报错参考 / sequenceDiagram

试图停用一个未激活的参与者

某个 deactivate 调用没有对应的 activate,所以 Mermaid 找不到可以关闭的活动生命线。

Trying to inactivate an inactive participant (A)

为什么会这样

sequence 图表的激活条是基于栈的:activate A(或消息上的简写 +A)会为 A 压入一条活动生命线,deactivate A(或 -A)则会弹出它。如果在没有先 activate 的情况下调用 deactivate——或者调用了两次 deactivate——就会导致没有东西可弹。

这种情况常常发生在编辑 sequence 图表之后:某一行 activate 被删除或挪动了位置,但对应的 deactivate 却被遗留了下来。

如何修复

在 deactivate 之前补上缺失的 activate A,或者删掉多余的 deactivate。对于简单的调用/返回配对,用简写 A->>+B: request ... B-->>-A: response 比分开写 activate/deactivate 更容易保持平衡。

错误示例

解析失败

正在渲染预览...
sequenceDiagram
    participant A
    A-->>A: hi
    deactivate A

修复后

正常渲染

正在渲染预览...
sequenceDiagram
    participant A
    activate A
    A-->>A: hi
    deactivate A

更多报错