Skip to content

fix: route cloud debug plugins to runtime owner - #779

Merged
hjlarry merged 1 commit into
mainfrom
build/test-cloud-debug
Jul 27, 2026
Merged

fix: route cloud debug plugins to runtime owner#779
hjlarry merged 1 commit into
mainfrom
build/test-cloud-debug

Conversation

@hjlarry

@hjlarry hjlarry commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

img_v3_02140_321a2590-6f3d-4344-b89f-830588a95e8g Fix intermittent remote debug plugin invocation failures in multi-node plugin-daemon deployments.

Remote debug plugins are now identified using the persisted installation runtime type instead of inferring their runtime type from the plugin author's format.

Background

Historically, RemotePluginRuntime.Identity() replaced the plugin manifest author with the tenant UUID:

<tenant-uuid>/<plugin-name>:<version>@<checksum>

PluginUniqueIdentifier.RemoteLike() therefore used “the author is a UUID” as an implicit marker for remote debug plugins.
This behavior changed in #731 while fixing #730. To keep plugin_id consistent between runtime listings and installation records, remote debug identities started preserving the manifest author:

langgenius/openai:<version>@<checksum>

Preserving the manifest author was the correct fix for plugin identity consistency, but it invalidated the UUID-based remote runtime detection.
#761 later restored cross-node redirection for remote debug plugins, but continued to gate the redirect logic with:

identity.RemoteLike()

For identities such as langgenius/openai, RemoteLike() returns false.

In a multi-node serverless deployment, a remote debug runtime only exists on the node that owns the debugging connection. Requests routed to that node succeed, while requests routed to another replica are treated as normal serverless invocations. Since a newly debugged plugin does not have a serverless runtime, those requests fail with a runtime/node-not-found error.

This made the issue appear intermittent and dependent on load-balancer routing.

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • Other

Essential Checklist

Testing

  • I have tested the changes locally and confirmed they work as expected
  • I have added unit tests where necessary and they pass successfully

Bug Fix (if applicable)

  • I have used GitHub syntax to close the related issue (e.g., Fixes #123 or Closes #123)

Additional Information

Please provide any additional context that would help reviewers understand the changes.

@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. bug Something isn't working plugin-daemon labels Jul 27, 2026
@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Jul 27, 2026
@hjlarry
hjlarry merged commit 9ca80b6 into main Jul 27, 2026
14 checks passed
@hjlarry
hjlarry deleted the build/test-cloud-debug branch July 27, 2026 04:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working lgtm This PR has been approved by a maintainer plugin-daemon size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants