Skip to content

eve could not assign a unique toolResultFrom identity for Atlassian tools #202

Description

@jimdrury

eve version

0.11.4

Node.js version

24

Where does the bug occur?

Local dev (eve dev)

Describe the bug

When an agent defines two or more OpenAPI connections against the same host (a common pattern for Atlassian Jira + Confluence, or multiple APIs on one domain), eve logs a warning at load time and marks the shared fallback identity as ambiguous. This makes toolResultFrom unreliable when passed the authored definition objects imported from connection modules.

Warning message

eve could not assign a unique toolResultFrom identity for "connection:https://virginmediao2.atlassian.net". 
Conflicting definitions: connection "confluence" from "connections/confluence.ts" and connection "jira"
from "connections/jira.ts". Multiple authored definitions share that fallback identity, so toolResultFrom
will not match through it. Use the original definition object loaded by eve so source-derived identity
can be used instead.

Steps to reproduce

Reproduction

  1. Create two OpenAPI connections with the same baseUrl:
// agent/connections/jira.ts
export default defineOpenAPIConnection({
  spec: jiraSpec,
  baseUrl: "https://example.atlassian.net",
  // ...
});

// agent/connections/confluence.ts
export default defineOpenAPIConnection({
  spec: confluenceSpec,
  baseUrl: "https://example.atlassian.net",
  // ...
});
  1. Start the agent (eve dev or eve build).

  2. Observe the warning above during connection resolution.

Expected behavior

Expected behavior

One of:

  • Multiple connections to the same host should be supported without warnings, or
  • The fallback identity should incorporate something unique (connection slug/name, logical path, or sourceId) rather than URL alone, or
  • The warning/docs should clearly state that URL-based fallback identity is intentionally one-per-host and show the recommended pattern for multi-connection setups.

Actual behavior

  • Warning logged at startup for every additional connection sharing the host.
  • toolResultFrom(event, importedConnection) does not match when using the module export directly (the common pattern shown in docs for hooks).
  • Agent tool execution itself still works — connections are distinguished at runtime by qualified tool names (e.g. jira__getIssue, confluence__getPageById).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions