Register your application’s callback
Use your A2A client’s create-task-push-configuration operation through the registered agent’s Bifrost endpoint. Supply the task ID, your callback URL, and any callback authentication. You can also include a push configuration when sending a message. Your callback must accept HTTPPOST requests with Content-Type: application/a2a+json. If you supply a notification token, Bifrost sends it in A2A-Notification-Token.
Callback authentication supports Basic and Bearer schemes. Both require a credential.
What happens during registration?
What happens during registration?
Bifrost replaces your callback URL and credentials with its own callback URL and a separate notification token before calling the upstream agent. It stores your original callback configuration so it can deliver updates to your application.An explicit create operation registers the upstream configuration first, then saves the local configuration. If local storage fails, Bifrost attempts to remove the upstream registration and returns an error.Get and list operations read Bifrost’s stored configuration without calling the upstream agent. They return your original callback URL, omit the notification token, and include only the authentication scheme. Callback credentials are write-only.
Why is this stored in the configuration database?
Why is this stored in the configuration database?
Bifrost stores both callback registrations and pending deliveries in the configuration database. An accepted update must survive a crash, and each delivery attempt needs to update its retry count, next attempt time, and status reliably. The configuration database provides durable storage, immediate reads, and transactional updates for this work.An in-memory KV store loses pending deliveries on restart. Log stores such as ClickHouse are built for recording and querying events, rather than repeatedly updating a delivery queue. Agent Logs still record notification and delivery attempts, while the configuration database tracks what remains to be delivered.
Manage saved configurations
Open Agent Gateway → Push Configurations to find registrations by agent, task ID, config ID, or callback URL. The table also shows the tenant and last update time. Click an agent, identifier, or callback URL to filter by it. Right-click the same value to copy it. Configurations are not automatically removed when a task finishes. Your application should call the A2A delete-task-push-configuration operation through Bifrost when it no longer needs updates. This removes the registration from both the agent server and Bifrost.
If you delete a configuration by mistake, call the A2A create-task-push-configuration operation through Bifrost again with the task ID, callback URL, and callback authentication. This registers both sides again. The dashboard cannot manually recreate a registration.
Check delivery and errors
In Agent Logs, distinguish Push notification from Push delivery. The first records the agent’s update arriving at Bifrost. The second records an attempt to send it to your application’s callback. Follow the task ID, push config ID, and delivery ID to connect them. A202 Accepted response to the upstream agent means Bifrost queued the notification. It does not mean your application has received it.
Retries and duplicate updates
Retries and duplicate updates
Bifrost treats any callback HTTP
2xx response as success. Timeouts and other HTTP statuses cause retries, up to six delivery attempts. Each attempt has a 30-second timeout. Redirects are not followed.Delivery is at least once. Your callback may receive the same event again if it processed a request but Bifrost did not receive its successful response. Make callback processing idempotent. After the retry limit, the delivery stops and records the failure. A delivery whose configuration has been deleted stops without further retries.An update never reaches my callback
An update never reaches my callback
- Confirm the upstream agent can reach Bifrost’s External Client URL and callback route.
- Find the task’s Push notification event. A missing event points to the agent-to-Bifrost hop. Invalid notification tokens, malformed events, and events for another task are rejected.
- Find its Push delivery attempts. Check for callback authentication errors, timeouts, or non-
2xxresponses. - Confirm the registration still appears in Push Configurations and its callback URL is correct.
Use a private callback during development
Use a private callback during development
Bifrost blocks delivery to private and loopback callback destinations by default. For a controlled development or test environment, enable this server setting in This option is configured at server startup and is not available in the dashboard.
config.json:read_buffer_size is required by the server configuration schema and controls the HTTP header read buffer. It is unrelated to private callback delivery; keep your existing value when updating this configuration.The equivalent Helm value is:
