Webhook cannot receive content
Self Checks
- [x] I have read the Contributing Guide and Language Policy.
- [x] This is only for bug report, if you would like to ask a question, please head to Discussions.
- [x] I have searched for existing issues search for existing issues, including closed ones.
- [x] I confirm that I am using English to submit this report, otherwise it will be closed.
- [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
- [x] Please do not modify this template :) and fill in all the required fields.
Dify version
1.10.0
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
·Webhook cannot receive any content under non-debug URL. ·The webhook under the debug url can receive the content.
✔️ Expected Behavior
Webhook receive content normally.
❌ Actual Behavior
Webhook cannot receive any content under non-debug URL.
The difference in webhook behavior between debug and non-debug URLs comes from how Dify handles workflow deployment and trigger status. In production (non-debug) mode, the webhook will only process content if there is a deployed workflow with an enabled AppTrigger for the webhook. If the workflow is not deployed, the trigger is disabled, or there is a configuration mismatch between the draft and deployed workflow, the webhook will not receive content and may return an empty payload. In debug mode, these checks are skipped, which is why content is received there.
To resolve this, make sure your workflow is deployed (not just in draft), the AppTrigger for the webhook is enabled, and the deployed workflow matches your draft configuration. Also, check that the HTTP method and content-type of your webhook requests match the deployed workflow's node configuration. If any of these are out of sync, production webhooks will not process incoming content as expected.
Reference
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
The difference in webhook behavior between debug and non-debug URLs comes from how Dify handles workflow deployment and trigger status. In production (non-debug) mode, the webhook will only process content if there is a deployed workflow with an enabled AppTrigger for the webhook. If the workflow is not deployed, the trigger is disabled, or there is a configuration mismatch between the draft and deployed workflow, the webhook will not receive content and may return an empty payload. In debug mode, these checks are skipped, which is why content is received there.
To resolve this, make sure your workflow is deployed (not just in draft), the AppTrigger for the webhook is enabled, 和 the deployed workflow matches your draft configuration. Also, check that the HTTP method and content-type of your webhook requests match the deployed workflow's node configuration. If any of these are out of sync, production webhooks will not process incoming content as expected. 引用
To reply, just mention @dosu。
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
![]()
![]()
This issue occurs when the workflow has been published.
Please check the logs in the worker container, as the webhook URL operates on this container, while the debug URL operates on the api container.
Please check the logs in the
workercontainer, as the webhook URL operates on this container, while the debug URL operates on theapicontainer.
I newly deployed the newly released version 1.10, and this issue still exists.
Here are the worker logs; no errors or exceptions were found. You may need to deploy and test it yourself.
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/entrypoint.sh: line 7: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Running migrations
2025-11-14 00:55:24.296 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads.
Preparing database migration...
Database migration skipped
Starting Celery worker with queues: dataset,priority_dataset,priority_pipeline,pipeline,mail,ops_trace,app_deletion,plugin,workflow_storage,conversation,workflow,schedule_poller,schedule_executor,triggered_workflow_dispatcher,trigger_refresh_executor
gRPC patched with gevent.
psycopg2 patched with gevent.
2025-11-14 00:55:38.883 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads.
/app/api/.venv/lib/python3.12/site-packages/celery/platforms.py:841: SecurityWarning: You're running the worker with superuser privileges: this is
absolutely not recommended!
Please specify a different user using the --uid option.
User information: uid=0 euid=0 gid=0 egid=0
warnings.warn(SecurityWarning(ROOT_DISCOURAGED.format(
-------------- celery@98e7cfea5a50 v5.5.3 (immunity)
--- ***** -----
-- ******* ---- Linux-6.12.18-trim-x86_64-with-glibc2.36 2025-11-14 00:55:42
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app: app_factory:0x7fdd5179c290
- ** ---------- .> transport: redis://:**@redis:6379/1
- ** ---------- .> results: redis://:**@redis:6379/1
- *** --- * --- .> concurrency: 1 (gevent)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> app_deletion exchange=app_deletion(direct) key=app_deletion
.> conversation exchange=conversation(direct) key=conversation
.> dataset exchange=dataset(direct) key=dataset
.> mail exchange=mail(direct) key=mail
.> ops_trace exchange=ops_trace(direct) key=ops_trace
.> pipeline exchange=pipeline(direct) key=pipeline
.> plugin exchange=plugin(direct) key=plugin
.> priority_dataset exchange=priority_dataset(direct) key=priority_dataset
.> priority_pipeline exchange=priority_pipeline(direct) key=priority_pipeline
.> schedule_executor exchange=schedule_executor(direct) key=schedule_executor
.> schedule_poller exchange=schedule_poller(direct) key=schedule_poller
.> trigger_refresh_executor exchange=trigger_refresh_executor(direct) key=trigger_refresh_executor
.> triggered_workflow_dispatcher exchange=triggered_workflow_dispatcher(direct) key=triggered_workflow_dispatcher
.> workflow exchange=workflow(direct) key=workflow
.> workflow_storage exchange=workflow_storage(direct) key=workflow_storage
[tasks]
. schedule.check_upgradable_plugin_task.check_upgradable_plugin_task
. schedule.trigger_provider_refresh_task.trigger_provider_refresh
. schedule.workflow_schedule_task.poll_workflow_schedules
. tasks.add_document_to_index_task.add_document_to_index_task
. tasks.annotation.add_annotation_to_index_task.add_annotation_to_index_task
. tasks.annotation.batch_import_annotations_task.batch_import_annotations_task
. tasks.annotation.delete_annotation_index_task.delete_annotation_index_task
. tasks.annotation.disable_annotation_reply_task.disable_annotation_reply_task
. tasks.annotation.enable_annotation_reply_task.enable_annotation_reply_task
. tasks.annotation.update_annotation_to_index_task.update_annotation_to_index_task
. tasks.async_workflow_tasks.execute_workflow_professional
. tasks.async_workflow_tasks.execute_workflow_sandbox
. tasks.async_workflow_tasks.execute_workflow_team
. tasks.batch_clean_document_task.batch_clean_document_task
. tasks.batch_create_segment_to_index_task.batch_create_segment_to_index_task
. tasks.clean_dataset_task.clean_dataset_task
. tasks.clean_document_task.clean_document_task
. tasks.clean_notion_document_task.clean_notion_document_task
. tasks.deal_dataset_index_update_task.deal_dataset_index_update_task
. tasks.deal_dataset_vector_index_task.deal_dataset_vector_index_task
. tasks.delete_account_task.delete_account_task
. tasks.delete_conversation_task.delete_conversation_related_data
. tasks.delete_segment_from_index_task.delete_segment_from_index_task
. tasks.disable_segment_from_index_task.disable_segment_from_index_task
. tasks.disable_segments_from_index_task.disable_segments_from_index_task
. tasks.document_indexing_sync_task.document_indexing_sync_task
. tasks.document_indexing_task.document_indexing_task
. tasks.document_indexing_task.normal_document_indexing_task
. tasks.document_indexing_task.priority_document_indexing_task
. tasks.document_indexing_update_task.document_indexing_update_task
. tasks.duplicate_document_indexing_task.duplicate_document_indexing_task
. tasks.enable_segments_to_index_task.enable_segments_to_index_task
. tasks.mail_account_deletion_task.send_account_deletion_verification_code
. tasks.mail_account_deletion_task.send_deletion_success_task
. tasks.mail_change_mail_task.send_change_mail_completed_notification_task
. tasks.mail_change_mail_task.send_change_mail_task
. tasks.mail_email_code_login.send_email_code_login_mail_task
. tasks.mail_inner_task.send_inner_email_task
. tasks.mail_invite_member_task.send_invite_member_mail_task
. tasks.mail_owner_transfer_task.send_new_owner_transfer_notify_email_task
. tasks.mail_owner_transfer_task.send_old_owner_transfer_notify_email_task
. tasks.mail_owner_transfer_task.send_owner_transfer_confirm_task
. tasks.mail_register_task.send_email_register_mail_task
. tasks.mail_register_task.send_email_register_mail_task_when_account_exist
. tasks.mail_reset_password_task.send_reset_password_mail_task
. tasks.mail_reset_password_task.send_reset_password_mail_task_when_account_not_exist
. tasks.ops_trace_task.process_trace_tasks
. tasks.process_tenant_plugin_autoupgrade_check_task.process_tenant_plugin_autoupgrade_check_task
. tasks.rag_pipeline.priority_rag_pipeline_run_task.priority_rag_pipeline_run_task
. tasks.rag_pipeline.rag_pipeline_run_task.rag_pipeline_run_task
. tasks.recover_document_indexing_task.recover_document_indexing_task
. tasks.remove_app_and_related_data_task.remove_app_and_related_data_task
. tasks.remove_document_from_index_task.remove_document_from_index_task
. tasks.retry_document_indexing_task.retry_document_indexing_task
. tasks.sync_website_document_indexing_task.sync_website_document_indexing_task
. tasks.trigger_processing_tasks.dispatch_triggered_workflows_async
. tasks.trigger_subscription_refresh_tasks.trigger_subscription_refresh
. tasks.workflow_execution_tasks.save_workflow_execution_task
. tasks.workflow_node_execution_tasks.save_workflow_node_execution_task
. tasks.workflow_schedule_tasks.run_schedule_trigger
2025-11-14 00:55:42.419 INFO [MainThread] [connection.py:22] - Connected to redis://:**@redis:6379/1
2025-11-14 00:55:42.424 INFO [MainThread] [mingle.py:40] - mingle: searching for neighbors
2025-11-14 00:55:43.442 INFO [MainThread] [mingle.py:49] - mingle: all alone
2025-11-14 00:55:43.461 INFO [Dummy-1] [pidbox.py:111] - pidbox: Connected to redis://:**@redis:6379/1.
2025-11-14 00:55:43.467 INFO [MainThread] [worker.py:176] - celery@98e7cfea5a50 ready.
2025-11-14 00:56:41.428 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[d08ffbf5-7047-4bd8-80f9-f7b396b18c0c] received
2025-11-14 00:56:41.571 INFO [Dummy-2] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[d08ffbf5-7047-4bd8-80f9-f7b396b18c0c] succeeded in 0.14187708400277188s: None
2025-11-14 00:57:41.429 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[6649b215-a857-40bd-b484-cd3c98238767] received
2025-11-14 00:57:41.469 INFO [Dummy-3] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[6649b215-a857-40bd-b484-cd3c98238767] succeeded in 0.03983317499660188s: None
2025-11-14 00:58:41.433 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[b521867b-622e-40e9-ac03-289777858dc2] received
2025-11-14 00:58:41.478 INFO [Dummy-4] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[b521867b-622e-40e9-ac03-289777858dc2] succeeded in 0.04434546000265982s: None
2025-11-14 00:59:41.430 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[9e2840a5-8c9a-4790-9109-e77a1bf4e81f] received
2025-11-14 00:59:41.470 INFO [Dummy-5] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[9e2840a5-8c9a-4790-9109-e77a1bf4e81f] succeeded in 0.03911367600085214s: None
2025-11-14 01:00:00.009 INFO [MainThread] [strategy.py:161] - Task schedule.check_upgradable_plugin_task.check_upgradable_plugin_task[fe616e2c-06ba-4ae3-8777-a99de15add77] received
2025-11-14 01:00:00.011 WARNING [Dummy-6] [log.py:232] - Start check upgradable plugin.
2025-11-14 01:00:00.018 WARNING [Dummy-6] [log.py:232] - Now seconds of day: 3570.0124502182007
2025-11-14 01:00:00.121 WARNING [Dummy-6] [log.py:232] - Total strategies: 0
2025-11-14 01:00:00.126 WARNING [Dummy-6] [log.py:232] - Checked upgradable plugin success latency: 0.11452049200306647
2025-11-14 01:00:00.156 INFO [Dummy-6] [trace.py:128] - Task schedule.check_upgradable_plugin_task.check_upgradable_plugin_task[fe616e2c-06ba-4ae3-8777-a99de15add77] succeeded in 0.14511492200108478s: None
2025-11-14 01:00:41.433 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[32b57a64-1283-4e27-80cb-10531902d014] received
2025-11-14 01:00:41.475 INFO [Dummy-7] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[32b57a64-1283-4e27-80cb-10531902d014] succeeded in 0.04046010199817829s: None
2025-11-14 01:01:41.433 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[0aff66a7-1c23-4f2c-a5e3-b4490104d505] received
2025-11-14 01:01:41.493 INFO [Dummy-8] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[0aff66a7-1c23-4f2c-a5e3-b4490104d505] succeeded in 0.05824625600507716s: None
2025-11-14 01:02:41.433 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[581ef87c-8e54-40fe-ac18-f96517424172] received
2025-11-14 01:02:41.488 INFO [Dummy-9] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[581ef87c-8e54-40fe-ac18-f96517424172] succeeded in 0.053698627998528536s: None
2025-11-14 01:02:58.023 INFO [MainThread] [strategy.py:161] - Task tasks.async_workflow_tasks.execute_workflow_team[3de4b783-4eaf-41e9-a7cf-7f2ee7a3efa5] received
2025-11-14 01:02:58.044 INFO [Dummy-10] [base.py:214] - Scheduler started
2025-11-14 01:02:58.271 INFO [Dummy-10] [trace.py:128] - Task tasks.async_workflow_tasks.execute_workflow_team[3de4b783-4eaf-41e9-a7cf-7f2ee7a3efa5] succeeded in 0.24807835499814246s: None
2025-11-14 01:03:41.429 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[5c311912-ec20-4a15-8550-1c1c90ae1a20] received
2025-11-14 01:03:41.462 INFO [Dummy-13] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[5c311912-ec20-4a15-8550-1c1c90ae1a20] succeeded in 0.032547642003919464s: None
2025-11-14 01:04:09.790 INFO [MainThread] [strategy.py:161] - Task tasks.async_workflow_tasks.execute_workflow_team[f0e7aaf3-4b69-4ba0-8c44-978fd58d0832] received
2025-11-14 01:04:09.889 INFO [Dummy-15] [trace.py:128] - Task tasks.async_workflow_tasks.execute_workflow_team[f0e7aaf3-4b69-4ba0-8c44-978fd58d0832] succeeded in 0.09799242900044192s: None
2025-11-14 01:04:41.433 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[af3194e3-3bac-43be-a8d8-24dbe458584b] received
2025-11-14 01:04:41.495 INFO [Dummy-17] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[af3194e3-3bac-43be-a8d8-24dbe458584b] succeeded in 0.06007173100078944s: None
2025-11-14 01:05:41.429 INFO [MainThread] [strategy.py:161] - Task schedule.workflow_schedule_task.poll_workflow_schedules[098dee82-324b-48e4-a7cb-ca1873376cc3] received
2025-11-14 01:05:41.457 INFO [Dummy-18] [trace.py:128] - Task schedule.workflow_schedule_task.poll_workflow_schedules[098dee82-324b-48e4-a7cb-ca1873376cc3] succeeded in 0.027586181000515353s: None
More testing is required before releasing a new version, especially for the official version.
@crazywoola Kindly merge the PR associated with this issue at the earliest convenience.