[slack_trigger] Missing subscription_constructor causes "Disconnected" status in Trigger node #833

Closed
opened 2026-02-16 10:20:39 -05:00 by yindo · 4 comments
Owner

Originally created by @kashira2339 on GitHub (Nov 25, 2025).

Self Checks

  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues Dify issues & Dify Official Plugins, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.10.0

Plugin version

langgenius/slack_trigger:0.0.1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

  1. Install the langgenius/slack_trigger plugin (v0.0.1) from the marketplace
  2. Create a new Workflow and add a Slack Trigger node (e.g., "Message" event)
  3. Create a Subscription through the plugin settings (successfully created)
  4. Go back to the Workflow canvas and observe the Trigger node

Expected behavior:

  • The Subscription selector should appear in the Trigger node panel
  • User should be able to select the registered Subscription
  • Node should show normal status

Actual behavior:

  • The Subscription selector does not appear
  • Node displays "Disconnected" (切断) warning status
  • subscription_id remains empty in the workflow data

Root Cause Analysis:

The provider/slack.yaml file is missing the subscription_constructor field.

Current structure:

identity:
  name: slack_trigger
  ...
subscription_schema:        # ✅ Present
  - name: "signing_secret"
  ...
# subscription_constructor:  # ❌ Missing!
events:
  ...

In the dify frontend code (web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx), the Subscription selector is only rendered when subscription_constructor exists:

useEffect(() => {
  if (currentTriggerPlugin?.subscription_constructor) {  // This condition fails
    setDetail({...})
  }
}, [currentTriggerPlugin, language, setDetail])

Without subscription_constructor, setDetail is never called, so useSubscriptionList returns an empty array, and the selector UI is not displayed.

✔️ Error log

Node Screenshot

Image

Network response ( GET /console/api/workspaces/current/triggers )

Image
Originally created by @kashira2339 on GitHub (Nov 25, 2025). ### Self Checks - [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 [Dify issues](https://github.com/langgenius/dify/issues) & [Dify Official Plugins](https://github.com/langgenius/dify-official-plugins/issues), including closed ones. - [x] I confirm that I am using English to submit this report (我已阅读并同意 [Language Policy](https://github.com/langgenius/dify/issues/1542)). - [x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.10.0 ### Plugin version langgenius/slack_trigger:0.0.1 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce 1. Install the langgenius/slack_trigger plugin (v0.0.1) from the marketplace 2. Create a new Workflow and add a Slack Trigger node (e.g., "Message" event) 3. Create a Subscription through the plugin settings (successfully created) 4. Go back to the Workflow canvas and observe the Trigger node Expected behavior: - The Subscription selector should appear in the Trigger node panel - User should be able to select the registered Subscription - Node should show normal status Actual behavior: - The Subscription selector does not appear - Node displays "Disconnected" (切断) warning status - subscription_id remains empty in the workflow data --- Root Cause Analysis: The provider/slack.yaml file is missing the subscription_constructor field. Current structure: ``` identity: name: slack_trigger ... subscription_schema: # ✅ Present - name: "signing_secret" ... # subscription_constructor: # ❌ Missing! events: ... ``` In the dify frontend code (web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx), the Subscription selector is only rendered when subscription_constructor exists: ``` useEffect(() => { if (currentTriggerPlugin?.subscription_constructor) { // This condition fails setDetail({...}) } }, [currentTriggerPlugin, language, setDetail]) ``` Without subscription_constructor, setDetail is never called, so useSubscriptionList returns an empty array, and the selector UI is not displayed. ### ✔️ Error log ## Node Screenshot <img width="474" height="185" alt="Image" src="https://github.com/user-attachments/assets/e80ccf8d-299d-4f34-9f8f-389a96ff004b" /> ## Network response ( `GET /console/api/workspaces/current/triggers` ) <img width="607" height="197" alt="Image" src="https://github.com/user-attachments/assets/fe38c261-109a-42e8-829e-bcdb15f1c50d" />
yindo added the bug label 2026-02-16 10:20:39 -05:00
yindo closed this issue 2026-02-16 10:20:39 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Nov 25, 2025):

Hi @kashira2339! I'm Dosu and I’m helping the dify-official-plugins team.

The "Disconnected" status in the Slack Trigger node is caused by the missing subscription_constructor field in slack.yaml. The frontend only renders the Subscription selector UI if subscription_constructor is present in the plugin config—without it, the selector doesn't appear and the node stays disconnected, even if subscriptions exist in settings. This is confirmed by both the frontend code and the current state of slack.yaml, which lacks this field (source).

To resolve this, add a subscription_constructor block to slack.yaml, following the pattern used in other trigger plugins. This will enable the workflow panel to display the subscription selector and eliminate the "Disconnected" status. There are no other relevant issues or threads about this bug, but a related PR (#185) addressed Slack provider initialization logic, which may be worth reviewing if you want to see recent changes.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Open in Cursor Join Discord Share on X

@dosubot[bot] commented on GitHub (Nov 25, 2025): <!-- Greeting --> Hi @kashira2339! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify-official-plugins team. <!-- Answer --> The "Disconnected" status in the Slack Trigger node is caused by the missing subscription_constructor field in slack.yaml. The frontend only renders the Subscription selector UI if subscription_constructor is present in the plugin config—without it, the selector doesn't appear and the node stays disconnected, even if subscriptions exist in settings. This is confirmed by both the frontend code and the current state of slack.yaml, which lacks this field ([source](https://github.com/langgenius/dify-official-plugins/blob/1dd51cd351698fff818facea860a359293bfbe90/triggers/slack_trigger/provider/slack.yaml#L1-L162)). To resolve this, add a subscription_constructor block to slack.yaml, following the pattern used in other trigger plugins. This will enable the workflow panel to display the subscription selector and eliminate the "Disconnected" status. There are no other relevant issues or threads about this bug, but a related PR (#185) addressed Slack provider initialization logic, which may be worth reviewing if you want to see recent changes. <!-- 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/a14a44b1-9527-435b-a742-36a6e64d9410?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/a14a44b1-9527-435b-a742-36a6e64d9410?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/a14a44b1-9527-435b-a742-36a6e64d9410?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/a14a44b1-9527-435b-a742-36a6e64d9410?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/a14a44b1-9527-435b-a742-36a6e64d9410?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/a14a44b1-9527-435b-a742-36a6e64d9410?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/a14a44b1-9527-435b-a742-36a6e64d9410?feedback_type=other)</sup> [![Open in Cursor](https://dosu.dev/dosu-in-cursor.svg)](https://cursor.com/link/prompt?text=The%20%22Disconnected%22%20status%20in%20the%20Slack%20Trigger%20node%20is%20caused%20by%20the%20missing%20subscription_constructor%20field%20in%20slack.yaml.%20The%20frontend%20only%20renders%20the%20Subscription%20selector%20UI%20if%20subscription_constructor%20is%20present%20in%20the%20plugin%20config%E2%80%94without%20it%2C%20the%20selector%20doesn%27t%20appear%20and%20the%20node%20stays%20disconnected%2C%20even%20if%20subscriptions%20exist%20in%20settings.%20This%20is%20confirmed%20by%20both%20the%20frontend%20code%20and%20the%20current%20state%20of%20slack.yaml%2C%20which%20lacks%20this%20field%20%28%5Bsource%5D%28https%3A//github.com/langgenius/dify-official-plugins/blob/1dd51cd351698fff818facea860a359293bfbe90/triggers/slack_trigger/provider/slack.yaml%23L1-L162%29%29.%0A%0ATo%20resolve%20this%2C%20add%20a%20subscription_constructor%20block%20to%20slack.yaml%2C%20following%20the%20pattern%20used%20in%20other%20trigger%20plugins.%20This%20will%20enable%20the%20workflow%20panel%20to%20display%20the%20subscription%20selector%20and%20eliminate%20the%20%22Disconnected%22%20status.%20There%20are%20no%20other%20relevant%20issues%20or%20threads%20about%20this%20bug%2C%20but%20a%20related%20PR%20%28%23185%29%20addressed%20Slack%20provider%20initialization%20logic%2C%20which%20may%20be%20worth%20reviewing%20if%20you%20want%20to%20see%20recent%20changes.)&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-official-plugins/issues/2132)
Author
Owner

@hjlarry commented on GitHub (Nov 25, 2025):

it should be fixed by this PR https://github.com/langgenius/dify/pull/28287

@hjlarry commented on GitHub (Nov 25, 2025): it should be fixed by this PR https://github.com/langgenius/dify/pull/28287
Author
Owner

@kashira2339 commented on GitHub (Nov 25, 2025):

it should be fixed by this PR langgenius/dify#28287

Thank you for the quick response!
I apologize for not checking the recent PRs before opening this issue.
Looking forward to the fix in #28287. 🙏

@kashira2339 commented on GitHub (Nov 25, 2025): > it should be fixed by this PR [langgenius/dify#28287](https://github.com/langgenius/dify/pull/28287) Thank you for the quick response! I apologize for not checking the recent PRs before opening this issue. Looking forward to the fix in #28287. 🙏
Author
Owner

@kashira2339 commented on GitHub (Nov 26, 2025):

We can confirm that this issue has been resolved.
This issue will therefore be closed.
Thank you!

@kashira2339 commented on GitHub (Nov 26, 2025): We can confirm that this issue has been resolved. This issue will therefore be closed. Thank you!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#833