What happened?
When all @PublicAgentCard beans carry a @tenant qualifier and no un-qualified default exists, JSONRPCHandler.resolveAgentCard() (and the equivalent in RestHandler) throws IllegalStateException("No agent card configured") on every RPC call.
The capability guards (streaming, push notifications, extended agent card, version/extension validation) all go through resolveAgentCard() → AgentCardValidator.resolveWithFallback() → CdiUtils.resolveDefault(), which skips every @Tenant-qualified bean and returns null.
Meanwhile getAgentCard(tenant) works correctly because it delegates to the AgentCardRouter.
Affected code:
- JSONRPCHandler.resolveAgentCard() (line 783)
- RestHandler has the same pattern
- AgentCardValidator.resolveWithFallback() — no router fallback
Relevant log output
Code of Conduct
What happened?
When all @PublicAgentCard beans carry a @tenant qualifier and no un-qualified default exists, JSONRPCHandler.resolveAgentCard() (and the equivalent in RestHandler) throws IllegalStateException("No agent card configured") on every RPC call.
The capability guards (streaming, push notifications, extended agent card, version/extension validation) all go through resolveAgentCard() → AgentCardValidator.resolveWithFallback() → CdiUtils.resolveDefault(), which skips every @Tenant-qualified bean and returns null.
Meanwhile getAgentCard(tenant) works correctly because it delegates to the AgentCardRouter.
Affected code:
Relevant log output
Code of Conduct