remote debug plugin id not match #238

Open
opened 2026-02-16 01:15:04 -05:00 by yindo · 1 comment
Owner

Originally created by @fatelei on GitHub (Jan 28, 2026).

Self Checks

To make sure we get to you in time, please check the following :)

  • I have searched for existing issues search for existing issues, 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."

Versions

  1. dify-plugin-daemon Version
  2. dify-api Version

Describe the bug
dify page

Image

query sql in dify-plugin-daemon

SELECT * FROM "plugin_installations" WHERE tenant_id = '1f65992e-48b0-4bdd-8c66-bb74bfc073ce' AND plugin_id = 'langgenius/agent' ORDER BY "plugin_installations"."id" LIMIT 1;

dify plugin table records

Image

the plugin id is mismatch

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

Originally created by @fatelei on GitHub (Jan 28, 2026). **Self Checks** To make sure we get to you in time, please check the following :) - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify-plugin-daemon/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." **Versions** 1. dify-plugin-daemon Version 2. dify-api Version **Describe the bug** dify page <img width="1206" height="812" alt="Image" src="https://github.com/user-attachments/assets/54e6200f-13e4-432f-b90a-3370ace3f935" /> query sql in dify-plugin-daemon ``` SELECT * FROM "plugin_installations" WHERE tenant_id = '1f65992e-48b0-4bdd-8c66-bb74bfc073ce' AND plugin_id = 'langgenius/agent' ORDER BY "plugin_installations"."id" LIMIT 1; ``` dify plugin table records <img width="2926" height="652" alt="Image" src="https://github.com/user-attachments/assets/ee01df4f-7e91-4408-83c8-2329616f8677" /> the plugin id is mismatch **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Additional context** Add any other context about the problem here.
yindo added the plugin-daemonbug labels 2026-02-16 01:15:04 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jan 28, 2026):

The plugin ID mismatch during remote debug is a known issue and usually comes down to a format discrepancy between the plugin_id used in your SQL queries and the one stored in the database. For example, the daemon or debug workflow might use a tenant-prefixed plugin_id (like tenant_id/plugin_name), while the database stores just plugin_name or org/plugin_name—this causes queries to return no results and triggers errors like PluginNotFoundError. You can see a direct example and explanation of this mismatch here.

Remote debug plugins also use a custom identification mechanism: the daemon may set the tenant ID as the "author" in the plugin unique identifier to flag debugging plugins, which can further complicate matching if the database record doesn't use the same format. The code responsible for this is in the RemotePluginRuntime struct and its Identity() method, which builds the identifier using the tenant ID and plugin config source.

To resolve this, make sure the plugin_id in your database matches exactly what the daemon expects and uses in queries. If you see a mismatch (for example, langgenius/agent vs. tenant_id/langgenius/agent), adjust either the database record or the query construction logic so they align. Also, double-check your manifest.yaml for required fields and formatting, and ensure version numbers match between your plugin and the daemon—version mismatches can also cause "plugin not found" errors even if the plugin appears in the UI details.

If you're running in a multi-pod Kubernetes setup, be aware that plugin runtime registration is not synchronized across pods, so only the pod that registered the plugin can serve requests. This can also cause "plugin not found" errors unless you use a single replica or implement distributed locking details.

In summary: check for plugin_id format mismatches, version alignment, manifest correctness, and deployment topology. If the problem persists, review the plugin daemon logs for more details on how the plugin_id is being constructed and queried.

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 (Jan 28, 2026): <!-- Answer --> The plugin ID mismatch during remote debug is a known issue and usually comes down to a format discrepancy between the plugin_id used in your SQL queries and the one stored in the database. For example, the daemon or debug workflow might use a tenant-prefixed plugin_id (like `tenant_id/plugin_name`), while the database stores just `plugin_name` or `org/plugin_name`—this causes queries to return no results and triggers errors like PluginNotFoundError. You can see a direct example and explanation of this mismatch [here](https://github.com/langgenius/dify-plugin-daemon/issues/185). Remote debug plugins also use a custom identification mechanism: the daemon may set the tenant ID as the "author" in the plugin unique identifier to flag debugging plugins, which can further complicate matching if the database record doesn't use the same format. The code responsible for this is in the `RemotePluginRuntime` struct and its `Identity()` method, which builds the identifier using the tenant ID and plugin config [source](https://github.com/langgenius/dify-plugin-daemon/blob/f272e6c3fcd8a18c6ff571d7fcbfde857f63ef99/internal/core/debugging_runtime/type.go#L16-L166). To resolve this, make sure the plugin_id in your database matches exactly what the daemon expects and uses in queries. If you see a mismatch (for example, `langgenius/agent` vs. `tenant_id/langgenius/agent`), adjust either the database record or the query construction logic so they align. Also, double-check your manifest.yaml for required fields and formatting, and ensure version numbers match between your plugin and the daemon—version mismatches can also cause "plugin not found" errors even if the plugin appears in the UI [details](https://github.com/langgenius/dify-plugin-daemon/issues/574). If you're running in a multi-pod Kubernetes setup, be aware that plugin runtime registration is not synchronized across pods, so only the pod that registered the plugin can serve requests. This can also cause "plugin not found" errors unless you use a single replica or implement distributed locking [details](https://github.com/langgenius/dify-plugin-daemon/issues/577). In summary: check for plugin_id format mismatches, version alignment, manifest correctness, and deployment topology. If the problem persists, review the plugin daemon logs for more details on how the plugin_id is being constructed and queried. <!-- 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/46576147-3f68-45e5-b498-7fb7b699eeee?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/46576147-3f68-45e5-b498-7fb7b699eeee?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/46576147-3f68-45e5-b498-7fb7b699eeee?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/46576147-3f68-45e5-b498-7fb7b699eeee?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/46576147-3f68-45e5-b498-7fb7b699eeee?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/46576147-3f68-45e5-b498-7fb7b699eeee?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/46576147-3f68-45e5-b498-7fb7b699eeee?feedback_type=other)</sup> [![Open in Cursor](https://dosu.dev/dosu-in-cursor.svg)](https://cursor.com/link/prompt?text=The%20plugin%20ID%20mismatch%20during%20remote%20debug%20is%20a%20known%20issue%20and%20usually%20comes%20down%20to%20a%20format%20discrepancy%20between%20the%20plugin_id%20used%20in%20your%20SQL%20queries%20and%20the%20one%20stored%20in%20the%20database.%20For%20example%2C%20the%20daemon%20or%20debug%20workflow%20might%20use%20a%20tenant-prefixed%20plugin_id%20%28like%20%60tenant_id/plugin_name%60%29%2C%20while%20the%20database%20stores%20just%20%60plugin_name%60%20or%20%60org/plugin_name%60%E2%80%94this%20causes%20queries%20to%20return%20no%20results%20and%20triggers%20errors%20like%20PluginNotFoundError.%20You%20can%20see%20a%20direct%20example%20and%20explanation%20of%20this%20mismatch%20%5Bhere%5D%28https%3A//github.com/langgenius/dify-plugin-daemon/issues/185%29.%0A%0ARemote%20debug%20plugins%20also%20use%20a%20custom%20identification%20mechanism%3A%20the%20daemon%20may%20set%20the%20tenant%20ID%20as%20the%20%22author%22%20in%20the%20plugin%20unique%20identifier%20to%20flag%20debugging%20plugins%2C%20which%20can%20further%20complicate%20matching%20if%20the%20database%20record%20doesn%27t%20use%20the%20same%20format.%20The%20code%20responsible%20for%20this%20is%20in%20the%20%60RemotePluginRuntime%60%20struct%20and%20its%20%60Identity%28%29%60%20method%2C%20which%20builds%20the%20identifier%20using%20the%20tenant%20ID%20and%20plugin%20config%20%5Bsource%5D%28https%3A//github.com/langgenius/dify-plugin-daemon/blob/f272e6c3fcd8a18c6ff571d7fcbfde857f63ef99/internal/core/debugging_runtime/type.go%23L16-L166%29.%0A%0ATo%20resolve%20this%2C%20make%20sure%20the%20plugin_id%20in%20your%20database%20matches%20exactly%20what%20the%20daemon%20expects%20and%20uses%20in%20queries.%20If%20you%20see%20a%20mismatch%20%28for%20example%2C%20%60langgenius/agent%60%20vs.%20%60tenant_id/langgenius/agent%60%29%2C%20adjust%20either%20the%20database%20record%20or%20the%20query%20construction%20logic%20so%20they%20align.%20Also%2C%20double-check%20your%20manifest.yaml%20for%20required%20fields%20and%20formatting%2C%20and%20ensure%20version%20numbers%20match%20between%20your%20plugin%20and%20the%20daemon%E2%80%94version%20mismatches%20can%20also%20cause%20%22plugin%20not%20found%22%20errors%20even%20if%20the%20plugin%20appears%20in%20the%20UI%20%5Bdetails%5D%28https%3A//github.com/langgenius/dify-plugin-daemon/issues/574%29.%0A%0AIf%20you%27re%20running%20in%20a%20multi-pod%20Kubernetes%20setup%2C%20be%20aware%20that%20plugin%20runtime%20registration%20is%20not%20synchronized%20across%20pods%2C%20so%20only%20the%20pod%20that%20registered%20the%20plugin%20can%20serve%20requests.%20This%20can%20also%20cause%20%22plugin%20not%20found%22%20errors%20unless%20you%20use%20a%20single%20replica%20or%20implement%20distributed%20locking%20%5Bdetails%5D%28https%3A//github.com/langgenius/dify-plugin-daemon/issues/577%29.%0A%0AIn%20summary%3A%20check%20for%20plugin_id%20format%20mismatches%2C%20version%20alignment%2C%20manifest%20correctness%2C%20and%20deployment%20topology.%20If%20the%20problem%20persists%2C%20review%20the%20plugin%20daemon%20logs%20for%20more%20details%20on%20how%20the%20plugin_id%20is%20being%20constructed%20and%20queried.)&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-plugin-daemon/issues/590)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-plugin-daemon#238