Skip to content

get_cwan_routes throws Error: 'Destinations' on segments with blackhole routes #4285

Description

@tz0py

Description

get_cwan_routes fails with an unhandled error (Error calling tool 'get_cwan_routes': 'Destinations') when called against a segment whose route table contains a blackhole route with target: null, while working correctly for segments with only active/propagated routes.

Environment

  • awslabs.aws-network-mcp-server version: 0.0.13 (via uvx awslabs.aws-network-mcp-server@latest)
  • MCP client: Claude Code
  • Region: eu-west-1

Steps to reproduce

  1. Call get_all_cwan_routes(core_network_id="<core-network-id>", cloudwan_region="eu-west-1", profile_name="<profile>") and find a segment whose routes include an entry shaped like:
    {"destination": "0.0.0.0/0", "target": null, "type": "static", "state": "blackhole"}
    (confirmed via get_all_cwan_routes in this account — the segment in question has exactly two such routes, 0.0.0.0/0 and ::/0, both blackhole with target: null.)
  2. Call get_cwan_routes(core_network_id="<core-network-id>", region="eu-west-1", segment="<that-segment-name>", profile_name="<profile>") on the same segment.
  3. Compare against a segment with only active/propagated routes (works fine), and a segment with zero routes at all (also works fine, returns "No network routes found with the given parameters.").

Actual behavior

Error calling tool 'get_cwan_routes': 'Destinations'

Confirmed via two data points: a segment with blackhole/null-target routes fails; a segment with zero routes succeeds with a clean "no routes" message; multiple segments with active/propagated routes all succeed normally. The differentiator appears to be specifically the presence of a blackhole route with a null target, not segment isolation or route count.

Expected behavior

The tool should return blackhole routes the same way get_all_cwan_routes does (with target: null, state: "blackhole") rather than throwing an unhandled error.

Additional context

The error message (bare 'Destinations') suggests the per-segment code path does a route['Destinations'] or similar lookup on the raw AWS API response shape, and something about blackhole/no-target route entries doesn't match the expected shape — while get_all_cwan_routes clearly already handles this shape correctly (it returns target: null cleanly), suggesting the two tools use different parsing logic for the same underlying GetNetworkRoutes API response.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions