Create push notification config returns no id on database-backed stores
@rohityan is already working on this.
Since Sep 15, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
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
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:51sets it on the caller's object, soreturn paramscarries it.database_push_notification_config_store.py:292copies first and sets it on the copy, soparamsnever 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from a2aproject/a2a-python
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
a2aproject/a2a-python#1261 ·
-
component: server status:awaiting response status:stale
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
a2aproject/a2a-python#1215 · 2 comments · 1 assignee ·
-
component: server status:awaiting response status:stale
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
a2aproject/a2a-python#1205 · 3 comments · 1 assignee ·
-
component: server status:awaiting response status:stale
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
a2aproject/a2a-python#1204 · 2 comments · 1 assignee ·
-
component: server
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
a2aproject/a2a-python#1192 · 3 comments · 1 assignee ·
All issues in a2aproject/a2a-python
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100