Workflow publish fails silently when checklist items are unresolved #16238

Closed
opened 2026-02-21 19:25:15 -05:00 by yindo · 1 comment
Owner

Originally created by @laipz8200 on GitHub (Aug 18, 2025).

Originally assigned to: @laipz8200 on GitHub.

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues, including closed ones.
  • I confirm that I am using English to submit this report.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

Latest (main branch)

Cloud or Self Hosted

Self Hosted (Source)

Steps to reproduce

  1. Open a workflow in the Dify application
  2. Have unresolved items in the workflow checklist (e.g., nodes with configuration issues)
  3. Click the publish button
  4. The publish process proceeds without showing checklist warnings

✔️ Expected Behavior

When attempting to publish a workflow with unresolved checklist items, the system should:

  1. Display an error notification indicating there are unresolved checklist items
  2. Prevent the workflow from being published until all checklist issues are resolved
  3. Provide clear feedback to the user about what needs to be fixed

Actual Behavior

Currently, the workflow publish process only performs detailed validation but doesn't check the checklist status first. This can lead to confusing situations where the workflow appears to publish but may have configuration issues that should have been caught by the checklist.

The checklist validation is performed after other checks, potentially allowing workflows with checklist warnings to proceed further in the publish process than intended.

Originally created by @laipz8200 on GitHub (Aug 18, 2025). Originally assigned to: @laipz8200 on GitHub. ## Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues, including closed ones. - [x] I confirm that I am using English to submit this report. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ## Dify version Latest (main branch) ## Cloud or Self Hosted Self Hosted (Source) ## Steps to reproduce 1. Open a workflow in the Dify application 2. Have unresolved items in the workflow checklist (e.g., nodes with configuration issues) 3. Click the publish button 4. The publish process proceeds without showing checklist warnings ## ✔️ Expected Behavior When attempting to publish a workflow with unresolved checklist items, the system should: 1. Display an error notification indicating there are unresolved checklist items 2. Prevent the workflow from being published until all checklist issues are resolved 3. Provide clear feedback to the user about what needs to be fixed ## ❌ Actual Behavior Currently, the workflow publish process only performs detailed validation but doesn't check the checklist status first. This can lead to confusing situations where the workflow appears to publish but may have configuration issues that should have been caught by the checklist. The checklist validation is performed after other checks, potentially allowing workflows with checklist warnings to proceed further in the publish process than intended.
yindo added the 🐞 bug label 2026-02-21 19:25:15 -05:00
yindo closed this issue 2026-02-21 19:25:15 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Aug 18, 2025):

You're right—currently, publishing a workflow does not block or warn about unresolved checklist items, which can lead to silent failures and confusion. The checklist validation logic exists in the frontend (see useChecklistBeforePublish), but it's not enforced before publishing; the publish button simply triggers the publish action without checking for unresolved issues first reference.

To fix this, update the publish handler in the AppPublisher component to call the checklist validation hook before proceeding. If unresolved items are found, use the toast notification system (Toast.notify) to display an error and block the publish action. For example:

const { handleCheckBeforePublish } = useChecklistBeforePublish();

const handlePublish = useCallback(async (params) => {
  const isChecklistValid = await handleCheckBeforePublish();
  if (!isChecklistValid) {
    Toast.notify({ type: 'error', message: 'Please resolve all checklist items before publishing.' });
    return;
  }
  try {
    await onPublish?.(params);
    setPublished(true);
  } catch {
    setPublished(false);
  }
}, [onPublish, handleCheckBeforePublish]);

This ensures users get immediate feedback and cannot publish until all checklist issues are resolved. The toast system is already set up for error notifications reference.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

@dosubot[bot] commented on GitHub (Aug 18, 2025): <!-- Answer --> You're right—currently, publishing a workflow does not block or warn about unresolved checklist items, which can lead to silent failures and confusion. The checklist validation logic exists in the frontend (see `useChecklistBeforePublish`), but it's not enforced before publishing; the publish button simply triggers the publish action without checking for unresolved issues first [reference](https://github.com/langgenius/dify/blob/b0e58f9da738f7cf767afa096aa84d7553f4a1e7/web/app/components/app/app-publisher/index.tsx). To fix this, update the publish handler in the `AppPublisher` component to call the checklist validation hook before proceeding. If unresolved items are found, use the toast notification system (`Toast.notify`) to display an error and block the publish action. For example: ```tsx const { handleCheckBeforePublish } = useChecklistBeforePublish(); const handlePublish = useCallback(async (params) => { const isChecklistValid = await handleCheckBeforePublish(); if (!isChecklistValid) { Toast.notify({ type: 'error', message: 'Please resolve all checklist items before publishing.' }); return; } try { await onPublish?.(params); setPublished(true); } catch { setPublished(false); } }, [onPublish, handleCheckBeforePublish]); ``` This ensures users get immediate feedback and cannot publish until all checklist issues are resolved. The toast system is already set up for error notifications [reference](https://github.com/langgenius/dify/blob/b0e58f9da738f7cf767afa096aa84d7553f4a1e7/web/app/components/base/toast/index.tsx). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/fd083ae1-62e2-40a1-8fa0-4bc0a849f42f?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/fd083ae1-62e2-40a1-8fa0-4bc0a849f42f?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/fd083ae1-62e2-40a1-8fa0-4bc0a849f42f?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/fd083ae1-62e2-40a1-8fa0-4bc0a849f42f?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/fd083ae1-62e2-40a1-8fa0-4bc0a849f42f?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/fd083ae1-62e2-40a1-8fa0-4bc0a849f42f?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/fd083ae1-62e2-40a1-8fa0-4bc0a849f42f?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/24103)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#16238