Skip to content

fix(reporting): allocate unique handler names for each installation #1846

Closed

Description

@bokelley

ReliableReportingService.install names its generated handler class with id(self), while the handler-tools registry retains class names for the process lifetime. A reclaimed service address can therefore collide with an older installation using a different tool surface. The beta.10 Python3.13 branch CI hit this before executing the reporting CLI test (run41682938162/job126081207858).

There is also a deterministic public API reproduction: one memory service installs two Seller instances with different advertised_tools_for_instance() sets (get_products versus get_principal). Both use the same service-address name, so the second raises a conflicting register_handler_tools ValueError. Reinstalling the same platform should remain idempotent; genuinely conflicting explicit registrations must still fail.

Replace address-based names with a process-unique name per actual installation, main-first and then proper forward-port to next. Preserve registry conflict enforcement and released artifacts. The stable9.6.0 mixed-creative fix is already published and unchanged.

Activity

  1. added
    no-triageSkip the Claude triage bot — human or designated agent will handle this issue
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    no-triageSkip the Claude triage bot — human or designated agent will handle this issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions