[GH-ISSUE #1052] [Bug] 不同工作流的节点 ID 不能相同 #711

Closed
opened 2026-03-03 01:05:25 +03:00 by kerem · 6 comments
Owner

Originally created by @zaw007 on GitHub (Nov 24, 2025).
Original GitHub issue: https://github.com/certimate-go/certimate/issues/1052

软件版本 / Release Version

v0.4.5

缺陷描述 / Description

证书每天都会都会重复申请,没有正常跳过

复现步骤 / Steps to reproduce

工作流就是简单的证书申请,设置了每天2点定时执行,申请证书那一步,重复申请设置为30天
Image
系统设置如图
Image
可以看到每天都会申请一个新证书
Image

另外经过多次测试,我发现当天执行是会正常跳过,第二天执行就会去申请新证书。

日志 / Logs

# 请在此粘贴日志 / Paste logs here

其他 / Miscellaneous

No response

贡献 / Contribution

  • 我乐意为此贡献 PR! / I am interested in contributing a PR for this!
Originally created by @zaw007 on GitHub (Nov 24, 2025). Original GitHub issue: https://github.com/certimate-go/certimate/issues/1052 ### 软件版本 / Release Version v0.4.5 ### 缺陷描述 / Description 证书每天都会都会重复申请,没有正常跳过 ### 复现步骤 / Steps to reproduce 工作流就是简单的证书申请,设置了每天2点定时执行,申请证书那一步,重复申请设置为30天 <img width="1179" height="695" alt="Image" src="https://github.com/user-attachments/assets/91ceebcf-846a-4a17-a485-07bcb63736cd" /> 系统设置如图 <img width="742" height="590" alt="Image" src="https://github.com/user-attachments/assets/e18e1b4e-7956-48b4-8b2e-f2325af89ad8" /> 可以看到每天都会申请一个新证书 <img width="1400" height="650" alt="Image" src="https://github.com/user-attachments/assets/3b0d6264-0734-4aaa-9d2a-52b62f2d9bc7" /> 另外经过多次测试,我发现当天执行是会正常跳过,第二天执行就会去申请新证书。 ### 日志 / Logs <details> ```console # 请在此粘贴日志 / Paste logs here ``` </details> ### 其他 / Miscellaneous _No response_ ### 贡献 / Contribution - [ ] 我乐意为此贡献 PR! / I am interested in contributing a PR for this!
kerem 2026-03-03 01:05:25 +03:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@fudiwei commented on GitHub (Nov 24, 2025):

贴下日志

<!-- gh-comment-id:3568836350 --> @fudiwei commented on GitHub (Nov 24, 2025): 贴下日志
Author
Owner

@zaw007 commented on GitHub (Nov 24, 2025):

贴下日志

第一个是今天2点定时执行的,第二个是早上我手动执行的

#MV-M_OIDIEBiYaQv7Rc7N 开始
[2025-11-24 02:50:00]
the workflow is starting
#WYwIGLdGkaFYuNfL0PERG 申请证书
[2025-11-24 02:50:00]
ready to request certificate ...
config:
{"domains":["www.xxx.com"],"contactEmail":"op@xx.com","challengeType":"dns-01","provider":"aliyun-dns","providerAccessId":"5ny02a3u0q1ru0k","caProvider":"letsencrypt","keySource":"auto","keyAlgorithm":"RSA2048","skipBeforeExpiryDays":30}
[2025-11-24 02:50:00]
re-apply, because the configuration item 'Domains' changed
[2025-11-24 02:50:00]
acme config initialized
acmeDirUrl:
"https://acme-v02.api.letsencrypt.org/directory"
[2025-11-24 02:50:00]
acme account initialized
acmeAcctUrl:
"https://acme-v02.api.letsencrypt.org/acme/acct/2402297137"
[2025-11-24 02:50:03]
[www.mayizqt.com] acme: Obtaining bundled SAN certificate
[2025-11-24 02:50:04]
[www.mayizqt.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/2402297137/612367009136
[2025-11-24 02:50:04]
[www.mayizqt.com] acme: authorization already valid; skipping challenge
[2025-11-24 02:50:04]
[www.mayizqt.com] acme: Validations succeeded; requesting certificates
[2025-11-24 02:50:06]
[www.mayizqt.com] Server responded with a certificate.
[2025-11-24 02:50:06]
certificate saved
[2025-11-24 02:50:06]
application completed
#pUxMLB0V8870crWcFmMXu 通知
[2025-11-24 02:50:06]
ready to send notification ...
config:
{"provider":"dingtalkbot","providerAccessId":"217w89sts146uub","subject":"证书申请成功,请手动部署!","message":"工作流《{{ $workflow.name }}》已成功申请《{{ $certificate.domain }}》证书,请到证书页面自行下载,手动部署。","skipOnAllPrevSkipped":true}
[2025-11-24 02:50:06]
notification completed
#7syuf7ojomjwa6j 结束
[2025-11-24 02:50:06]
the workflow is ending


#MV-M_OIDIEBiYaQv7Rc7N 开始
[2025-11-24 09:47:08]
the workflow is starting
#WYwIGLdGkaFYuNfL0PERG 申请证书
[2025-11-24 09:47:08]
ready to request certificate ...
config:
{"domains":["www.xxx.com"],"contactEmail":"op@xx.com","challengeType":"dns-01","provider":"aliyun-dns","providerAccessId":"5ny02a3u0q1ru0k","caProvider":"letsencrypt","keySource":"auto","keyAlgorithm":"RSA2048","skipBeforeExpiryDays":30}
[2025-11-24 09:47:08]
skip this application, because the last issued certificate #sg63y6y9x9o29uc expires in 89 day(s), next renewal will be in 30 day(s)
#pUxMLB0V8870crWcFmMXu 通知
[2025-11-24 09:47:08]
ready to send notification ...
config:
{"provider":"dingtalkbot","providerAccessId":"217w89sts146uub","subject":"证书申请成功,请手动部署!","message":"工作流《{{ $workflow.name }}》已成功申请《{{ $certificate.domain }}》证书,请到证书页面自行下载,手动部署。","skipOnAllPrevSkipped":true}
[2025-11-24 09:47:08]
skip this application, because all the previous nodes have been skipped
#7syuf7ojomjwa6j 结束
[2025-11-24 09:47:08]
the workflow is ending


<!-- gh-comment-id:3568840328 --> @zaw007 commented on GitHub (Nov 24, 2025): > 贴下日志 第一个是今天2点定时执行的,第二个是早上我手动执行的 ----------------------- #MV-M_OIDIEBiYaQv7Rc7N 开始 [2025-11-24 02:50:00] the workflow is starting #WYwIGLdGkaFYuNfL0PERG 申请证书 [2025-11-24 02:50:00] ready to request certificate ... config: {"domains":["www.xxx.com"],"contactEmail":"op@xx.com","challengeType":"dns-01","provider":"aliyun-dns","providerAccessId":"5ny02a3u0q1ru0k","caProvider":"letsencrypt","keySource":"auto","keyAlgorithm":"RSA2048","skipBeforeExpiryDays":30} [2025-11-24 02:50:00] re-apply, because the configuration item 'Domains' changed [2025-11-24 02:50:00] acme config initialized acmeDirUrl: "https://acme-v02.api.letsencrypt.org/directory" [2025-11-24 02:50:00] acme account initialized acmeAcctUrl: "https://acme-v02.api.letsencrypt.org/acme/acct/2402297137" [2025-11-24 02:50:03] [www.mayizqt.com] acme: Obtaining bundled SAN certificate [2025-11-24 02:50:04] [www.mayizqt.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/2402297137/612367009136 [2025-11-24 02:50:04] [www.mayizqt.com] acme: authorization already valid; skipping challenge [2025-11-24 02:50:04] [www.mayizqt.com] acme: Validations succeeded; requesting certificates [2025-11-24 02:50:06] [www.mayizqt.com] Server responded with a certificate. [2025-11-24 02:50:06] certificate saved [2025-11-24 02:50:06] application completed #pUxMLB0V8870crWcFmMXu 通知 [2025-11-24 02:50:06] ready to send notification ... config: {"provider":"dingtalkbot","providerAccessId":"217w89sts146uub","subject":"证书申请成功,请手动部署!","message":"工作流《{{ $workflow.name }}》已成功申请《{{ $certificate.domain }}》证书,请到证书页面自行下载,手动部署。","skipOnAllPrevSkipped":true} [2025-11-24 02:50:06] notification completed #7syuf7ojomjwa6j 结束 [2025-11-24 02:50:06] the workflow is ending ----------------------- #MV-M_OIDIEBiYaQv7Rc7N 开始 [2025-11-24 09:47:08] the workflow is starting #WYwIGLdGkaFYuNfL0PERG 申请证书 [2025-11-24 09:47:08] ready to request certificate ... config: {"domains":["www.xxx.com"],"contactEmail":"op@xx.com","challengeType":"dns-01","provider":"aliyun-dns","providerAccessId":"5ny02a3u0q1ru0k","caProvider":"letsencrypt","keySource":"auto","keyAlgorithm":"RSA2048","skipBeforeExpiryDays":30} [2025-11-24 09:47:08] skip this application, because the last issued certificate #sg63y6y9x9o29uc expires in 89 day(s), next renewal will be in 30 day(s) #pUxMLB0V8870crWcFmMXu 通知 [2025-11-24 09:47:08] ready to send notification ... config: {"provider":"dingtalkbot","providerAccessId":"217w89sts146uub","subject":"证书申请成功,请手动部署!","message":"工作流《{{ $workflow.name }}》已成功申请《{{ $certificate.domain }}》证书,请到证书页面自行下载,手动部署。","skipOnAllPrevSkipped":true} [2025-11-24 09:47:08] skip this application, because all the previous nodes have been skipped #7syuf7ojomjwa6j 结束 [2025-11-24 09:47:08] the workflow is ending -----------------------
Author
Owner

@fudiwei commented on GitHub (Nov 24, 2025):

[2025-11-24 02:50:00]
ready to request certificate ...
config: {"domains":["www.xxx.com"],"contactEmail":"[op@xx.com](mailto:op@xx.com)","challengeType":"dns-01","provider":"aliyun-dns","providerAccessId":"5ny02a3u0q1ru0k","caProvider":"letsencrypt","keySource":"auto","keyAlgorithm":"RSA2048","skipBeforeExpiryDays":30}
[2025-11-24 02:50:00]
re-apply, because the configuration item 'Domains' changed

证书域名改了。看一下上一次没跳过的日志

<!-- gh-comment-id:3568851041 --> @fudiwei commented on GitHub (Nov 24, 2025): > ``` > [2025-11-24 02:50:00] > ready to request certificate ... > config: {"domains":["www.xxx.com"],"contactEmail":"[op@xx.com](mailto:op@xx.com)","challengeType":"dns-01","provider":"aliyun-dns","providerAccessId":"5ny02a3u0q1ru0k","caProvider":"letsencrypt","keySource":"auto","keyAlgorithm":"RSA2048","skipBeforeExpiryDays":30} > [2025-11-24 02:50:00] > re-apply, because the configuration item 'Domains' changed > ``` 证书域名改了。看一下上一次没跳过的日志
Author
Owner

@fudiwei commented on GitHub (Nov 24, 2025):

诶等下,你有没有通过 YAML/JSON 创建或导入过其他工作流的导出?😶

<!-- gh-comment-id:3568882922 --> @fudiwei commented on GitHub (Nov 24, 2025): 诶等下,你有没有通过 YAML/JSON 创建或导入过其他工作流的导出?😶
Author
Owner

@zaw007 commented on GitHub (Nov 24, 2025):

诶等下,你有没有通过 YAML/JSON 创建或导入过其他工作流的导出?😶

没有,早期版本没工作流复制功能时,我是直接在数据库里复制一条workflow记录,然后改id

<!-- gh-comment-id:3568952637 --> @zaw007 commented on GitHub (Nov 24, 2025): > 诶等下,你有没有通过 YAML/JSON 创建或导入过其他工作流的导出?😶 没有,早期版本没工作流复制功能时,我是直接在数据库里复制一条workflow记录,然后改id
Author
Owner

@fudiwei commented on GitHub (Nov 24, 2025):

没有,早期版本没工作流复制功能时,我是直接在数据库里复制一条workflow记录,然后改id

节点 ID 冲突了。现在不同工作流里的节点 ID 也不能相同。

下个版本我兼容一下你这种场景吧。

<!-- gh-comment-id:3568986248 --> @fudiwei commented on GitHub (Nov 24, 2025): > 没有,早期版本没工作流复制功能时,我是直接在数据库里复制一条workflow记录,然后改id 节点 ID 冲突了。现在不同工作流里的节点 ID 也不能相同。 下个版本我兼容一下你这种场景吧。
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/certimate#711
No description provided.