Skip to content

A2A managed endpoint returns empty/404 while runtime endpoint works #138

Open

Description

Summary

The APIM-managed A2A endpoint path (/ks/a2a-managed) appears non-functional in our current configuration, while the policy-backed runtime path (/ks/a2a-weather) works reliably.

Environment

  • Repo: Azure/apiops-cli
  • APIM target service: bvt-7i6mlsfka5aec-tgt-apim
  • API: src-a2a-weather-agent (type a2a)
  • API version: 2025-09-01-preview

Current Config (deployed)

src-a2a-weather-agent on target shows:

  • properties.path = ks/a2a-managed
  • a2aProperties.agentCardBackendUrl = https://bvt-7i6mlsfka5aec-tgt-apim.azure-api.net/ks/a2a-weather/.well-known/agent-card.json
  • jsonRpcProperties.backendUrl = https://bvt-7i6mlsfka5aec-tgt-apim.azure-api.net
  • jsonRpcProperties.path = /ks/a2a-weather

Operation resources also exist on the managed API:

  • GET /.well-known/agent-card.json
  • POST /
    with policy present for get-agent-card.

Repro

  1. Publish extracted artifacts with bvt-target.overrides.yaml.
  2. Call managed URL:
    • GET https://bvt-7i6mlsfka5aec-tgt-apim.azure-api.net/ks/a2a-managed/.well-known/agent-card.json
    • POST https://bvt-7i6mlsfka5aec-tgt-apim.azure-api.net/ks/a2a-managed with valid JSON-RPC body.
  3. Call runtime URL:
    • GET https://bvt-7i6mlsfka5aec-tgt-apim.azure-api.net/ks/a2a-weather/.well-known/agent.json
    • POST https://bvt-7i6mlsfka5aec-tgt-apim.azure-api.net/ks/a2a-weather

Actual

  • Managed endpoint:
    • GET /ks/a2a-managed/.well-known/agent-card.json => 200 with empty body
    • POST /ks/a2a-managed => 404 Resource not found
  • Runtime endpoint:
    • Returns valid agent card and JSON-RPC responses.

Expected

Managed endpoint should be fully usable for discovery + invocation:

  • Non-empty agent-card JSON on managed card route
  • JSON-RPC request should route and return valid task response on managed root

Impact

  • APIM UI suggests using managed A2A URL, but runtime behavior requires using /ks/a2a-weather.
  • Causes confusion for Foundry/tool onboarding and demo instructions.

Notes / Potential Direction

A robust architecture likely requires a2a-managed pointing to an external runtime backend (App Service/Function/Container App) rather than APIM self-referencing paths, to avoid internal routing/preview gaps.

Activity

  1. github-actions commented on Jun 11, 2026

    @github-actions

    🏗️ Squad Triage — ApiOpsLead (🏗️ Tech Lead)

    Issue: #138 — A2A managed endpoint returns empty/404 while runtime endpoint works
    Assigned to: ApimExpert (🔵 APIM Expert)
    Reason: Issue relates to backend/API work

    Team roster:

    • ApiOpsLead (🏗️ Tech Lead) → label: squad:apiopslead
    • ApimExpert (🔵 APIM Expert) → label: squad:apimexpert
    • ApicExpert (🟣 APIC Expert) → label: squad:apicexpert
    • TypeScriptDev (🔷 TypeScript Developer) → label: squad:typescriptdev
    • NodeJsDev (🟢 Node.js Developer) → label: squad:nodejsdev
    • TestEngineer (🧪 Test Engineer) → label: squad:testengineer
    • OpenSourceExpert (⚖️ Open Source Expert) → label: squad:opensourceexpert
    • CodeReviewer (🔍 Code Reviewer & Standards Enforcer) → label: squad:codereviewer
    • AzdoExpert (🔶 Azure DevOps Expert) → label: squad:azdoexpert
    • GitHubExpert (⚫ GitHub Expert) → label: squad:githubexpert
    • DocWriter (📝 Technical Writer) → label: squad:docwriter
    • SecurityExpert (🔒 Security Expert) → label: squad:securityexpert
    • Ralph (🔄 Work Monitor) → label: squad:ralph

    To reassign, remove the current squad:* label and add the correct one.

  2. added 3 commits that reference this issue on Jun 11, 2026
    2a10471
    3ebda60
    3e9dd8f
  3. github-actions commented on Aug 7, 2026

    @github-actions

    ⚠️ Stale issue notice — This issue has had no activity for 30 day(s).

    It will be automatically closed after 60 days of inactivity.

    To keep this issue open:

    • Leave a comment describing the current status, or
    • Remove the stale label.

    This notice was posted automatically by the stale issue workflow.

  4. added
    staleNo activity for 30+ days — will be closed if no further activity
    on Aug 7, 2026
  5. added
    P2Next sprint
    and removed
    staleNo activity for 30+ days — will be closed if no further activity
    on Aug 27, 2026
  6. github-actions commented on Sep 27, 2026

    @github-actions

    ⚠️ Stale issue notice — This issue has had no activity for 30 day(s).

    It will be automatically closed after 60 days of inactivity.

    To keep this issue open:

    • Leave a comment describing the current status, or
    • Remove the stale label.

    This notice was posted automatically by the stale issue workflow.

  7. added
    staleNo activity for 30+ days — will be closed if no further activity
    on Sep 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

P2Next sprintTestinggo:needs-researchNeeds investigationsquadSquad triage inbox — Lead will assign to a membersquad:apimexpertAssigned to ApimExpert (🔵 APIM Expert)staleNo activity for 30+ days — will be closed if no further activity

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions