Skip to content

[Bug]: infer web search rejects installed Exa plugin SecretRef target as unknown #104320

Description

@dale-goes-fast

Summary

The command SecretRef fix from #82621 appears to have regressed in OpenClaw 2026.6.11 after the web provider was split into its installed plugin package. The CLI discovers the concrete Exa credential target, but the gateway rejects that target id as unknown, so local fallback reaches the provider with an unresolved SecretRef.

Live reproduction on macOS 26.5.0, with CLI and gateway both 2026.6.11:

  • tools.web.search.provider is exa.
  • plugins.entries.exa.config.webSearch.apiKey is an exec SecretRef.
  • openclaw plugins list --json reports @openclaw/exa-plugin 2026.6.11 loaded, enabled, and advertising webSearchProviderIds: ["exa"].
  • Gateway startup succeeds and openclaw secrets audit --allow-exec --json reports unresolvedRefCount: 0, skippedExecRefs: 0, and resolvabilityComplete: true.
  • openclaw infer web search --provider exa --query 'site:openclaw.ai OpenClaw' --limit 1 --json fails before provider I/O with UnresolvedSecretInputError for plugins.entries.exa.config.webSearch.apiKey.

The gateway-side failure is more specific. This redacted probe:

openclaw gateway call secrets.resolve --json --params '{
  "commandName":"infer web search",
  "targetIds":["plugins.entries.exa.config.webSearch.apiKey"],
  "allowedPaths":["plugins.entries.exa.config.webSearch.apiKey"],
  "forcedActivePaths":["plugins.entries.exa.config.webSearch.apiKey"],
  "providerOverrides":{"webSearch":"exa"}
}'

returns:

{
  "ok": false,
  "error": {
    "code": "INVALID_REQUEST",
    "message": "invalid secrets.resolve params: unknown target id \"plugins.entries.exa.config.webSearch.apiKey\""
  }
}

No credential value was printed or included in this report. The same Keychain-backed credential succeeds in a direct, no-output Exa API probe, so this is command target registration/resolution rather than provider authentication.

Expected

infer web search should resolve the selected installed plugin's credential from the active gateway snapshot and reach Exa provider I/O, as #82798 intended.

Actual

The gateway rejects the installed plugin target id as unknown; the command then fails with an unresolved SecretRef before provider I/O.

Likely seam

The CLI discovers the concrete Exa plugin credential target, while the gateway's isKnownSecretTargetId registry does not know the installed plugin-provided target id.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.no-staleExclude from stale automation

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions