Skip to content

[Bug]: TCK CI failure after a2a-tck PR #129 (push notification method rename) #697

@CokeLee777

Description

@CokeLee777

What happened?

Expected: The Run TCK workflow (.github/workflows/run-tck.yml) passes when using a2a-tck main, as it did before late February 2026.

Actual: TCK runs fail with JSON-RPC method-not-found errors and related assertion failures. The root cause is a breaking change in the a2a-tck project: PR #129 (merged 2026-02-27) renamed the list push-notification-config method from ListTaskPushNotificationConfig to ListTaskPushNotificationConfigs. The a2a-java SDK still exposes the old method name, so the TCK client receives "Unsupported JSON-RPC method" and tests fail.

How to reproduce:

  1. Use the Run TCK workflow with default config (e.g. push to a branch that triggers it, or workflow_dispatch).
  2. The workflow checks out a2a-tck at ref: main (see TCK_VERSION: main in run-tck.yml).
  3. Run the TCK; it uses the post-fix: Split out server related code from a2a-java-sdk-core into a new a2a-java-sdk-server-common module #129 client that calls ListTaskPushNotificationConfigs.
  4. The a2a-java SUT (tck server) only handles ListTaskPushNotificationConfig, so JSON-RPC returns -32601 (Method not found) for that method.
  5. All tests that depend on listing push notification configs (and any that declare push notification capability and then call list) fail.

Relevant log output

**JSON-RPC (push notification list):**


AssertionError: Push notifications capability declared but list config failed
assert False
 +  where False = <function is_json_rpc_success_response at ...>({'error': {'code': -32601, 'message': "Unsupported JSON-RPC method: 'ListTaskPushNotificationConfigs'"}})


**Affected tests (examples):**

- `tests/optional/capabilities/test_push_notification_config_methods.py::test_list_push_notification_config`
- `tests/optional/capabilities/test_push_notification_config_methods.py::test_send_message_with_push_notification_config`
- `tests/optional/capabilities/test_push_notification_config_methods.py::test_send_streaming_message_with_push_notification_config`

**a2a-tck change (reference):**

- **PR #129:** [fix!: Align push notification methods with latest a2a-java proto (#129)](https://github.com/a2aproject/a2a-tck/pull/129)  
  - Rename: `ListTaskPushNotificationConfig``ListTaskPushNotificationConfigs` (RPC and JSON-RPC method name).  
  - Request/response types renamed to `ListTaskPushNotificationConfigsRequest` / `ListTaskPushNotificationConfigsResponse`.  
  - Other changes: remove `configId` param from CreateTaskPushNotificationConfig, update TaskPushNotificationConfig structure (id in nested config).

---

## Proposed direction

Align a2a-java with the TCK/spec change by renaming the list method to the plural form used in a2a-tck and the updated proto:

- In `io.a2a.spec.A2AMethods`, set  
  `LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD = "ListTaskPushNotificationConfigs"`  
  (and keep all existing references to this constant so JSON-RPC routing and clients use the new name).

This will restore TCK CI when running against a2a-tck main, without changing TCK or pinning an old TCK version.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions