Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug]: get_info_for_dispatch default resolves to empty owner in multi-owner deployments

Open
#1,231 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Domain
backend

Research direction

The bug is in push_notification_config_store.py and inmemory_push_notification_config_store.py. Start by reading the default get_info_for_dispatch method and see how it calls get_info with an empty ServerCallContext. Then examine the owner_resolver logic in the in-memory store to understand the empty-string owner partition. The fix is to make the method abstract, but check existing subclasses first. Run any existing tests for push notifications to verify the behavior.

Written by the indexing model from the issue text.

Description

component: server maintainers-only
What happened?

PushNotificationConfigStore.get_info_for_dispatch(task_id) is the cross-owner read used by the dispatch loop it must return every config for a task regardless of which owner registered it. But the shipped (non-abstract) default falls back to an owner-scoped get_info with an empty context:

# push_notification_config_store.py (v1.1.3) — default fallback
async def get_info_for_dispatch(self, task_id):
    logger.warning('%s does not override get_info_for_dispatch ...', type(self).__name__)
    return await self.get_info(task_id, ServerCallContext())   # empty context

get_info resolves the owner partition from that context:

# inmemory_push_notification_config_store.py — get_info
owner = self.owner_resolver(context)          # empty ctx -> empty-string owner
owner_infos = self._get_owner_push_notification_infos(owner)
return list(owner_infos.get(task_id, []))     # that partition is empty -> []

So ServerCallContext() -> empty-string owner -> returns [] -> every push notification is silently dropped in any multi-owner deployment. The only signal is a per-call logger.warning.

Proposed fix: #1180 fixes this by marking the method as abstractmethod. However, the method shipped as non-abstract (latest released versions at this time - v1.1.4), so this is a breaking change to a public ABC (existing subclasses fail to instantiate on upgrade) and should be a part of a major release.

Relevant log output

Code of Conduct
  • I agree to follow this project's Code of Conduct
Dominant language
Python
Stars
2.2k
Forks
499
Avg merge
3d 15h
Merged PRs (30d)
28

Getting set up

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.