Create push notification config returns no id on database-backed stores

Open Beginner friendly
#1,237 1 comment 0 reactions 1 assignee View on GitHub

@rohityan is already working on this.

Since Sep 15, 2026.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
75/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Domain
backend, databases

Research direction

The issue is in default_request_handler.py line 556 and default_request_handler_v2.py line 394, where on_create_task_push_notification_config returns the request params instead of the persisted object. Compare with inmemory_push_notification_config_store.py:51 and database_push_notification_config_store.py:292 to see how each store handles the id. Write a test that creates a push notification config using the database store and verifies the returned config has a valid id. Run the existing push notification tests to ensure the fix doesn't break anything.

Written by the indexing model from the issue text.

Description

component: server status:awaiting response

What happens

Creating a push notification config against a database-backed server returns a config with no id. Reading it back with that id raises InvalidParamsError.

create returned id = ''
get FAILED -> InvalidParamsError: Validation failed

The same calls against the in-memory store return id='task-123' and the get succeeds.

Why

on_create_task_push_notification_config returns the caller's request object rather than what the store persisted (default_request_handler.py:556, default_request_handler_v2.py:394).

Both stores default an empty id to the task id, on different objects:

  • inmemory_push_notification_config_store.py:51 sets it on the caller's object, so return params carries it.
  • database_push_notification_config_store.py:292 copies first and sets it on the copy, so params never gets it.

The store holds the right id either way; only the response differs.

Version

main @ d55a3d3

Dominant language
Python
Stars
2.2k
Forks
496
Avg merge
1d 23h
Merged PRs (30d)
16

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from a2aproject/a2a-python

All issues in a2aproject/a2a-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.