This page is a symptom index for the issues you're most likely to hit when integrating with the Atlassian A2A Gateway. To confirm the endpoints respond at all, run the checks in Debugging first.
| HTTP status | Meaning | Common cause |
|---|---|---|
200 | Gateway returned a task response | The task itself may still have a failed state |
400 | JSON-RPC error from the gateway | Invalid request, unsupported method, or unexpected agent response |
401 | Authentication rejected before execution | Missing or invalid OAuth access token |
403 | Forbidden | A2A is not enabled for the organization, or the org could not be resolved |
404 | Not found | The endpoint is not available in the current rollout, or the path is wrong |
Symptom: The Agent Card response doesn't match what you expect, or contains different skills than documented.
Possible causes:
Resolution: Both cards are safe to use, so this is not a blocking condition. Request the Agent Card again after the 5-minute cache window has passed. If the content still doesn't match this documentation, contact Atlassian support.
Symptom: POST requests to https://a2a.atlassian.com/v1/rovo return 404 Not Found.
Possible causes:
/v1/rovo).POST. GET requests return 404.Resolution:
https://a2a.atlassian.com/v1/rovo with POST.Symptom: Requests to the JSON-RPC endpoint are rejected before you receive a task response. Depending on the auth layer in front of the gateway, this may appear as 401 Unauthorized.
Possible causes:
Authorization: Bearer <token> header is not included.Resolution:
Authorization: Bearer <token> header is present.Symptom: Requests return a 403 with error code -32007 and the message "A2A connections are not enabled for this organization."
Cause: An administrator has not enabled A2A. A2A connections are disabled by default.
Receiving this code confirms the gateway identified your organization. If it could not, you would get -32008 instead.
Resolution:
Symptom: Requests return a 403 with error code -32008 and the message "Unable to determine the organization for the requested site."
Cause: The gateway derives your organization from the Atlassian site associated with your access token. This error means either the token carried no site, or the site could not be mapped to an organization. The organization is resolved before the admin setting is checked, so this error replaces -32007 rather than accompanying it.
Resolution:
Symptom: The user cannot complete the OAuth consent flow, or the browser shows an error.
Possible causes:
code_challenge and code_challenge_method=S256. The consent page shows "Hmm... We're having trouble logging you in." with the message "This app requires enhanced security (PKCE) to continue. Contact the app developer."Resolution:
code_challenge and code_challenge_method=S256 on the authorization request, and the matching code_verifier on the token exchange. PKCE is required and the flow cannot complete without it.read:me, offline_access, full_access:chat:rovo.Symptom: Response contains error code -32600 with a message about invalid request structure.
Possible causes:
jsonrpc field — Must be "2.0".id — Must be a string or number.method — Must be a string.Resolution: Ensure your request follows the JSON-RPC 2.0 format:
1 2{ "jsonrpc": "2.0", "id": "req-1", "method": "message/send", "params": { ... } }
Symptom: Response contains error code -32602.
Cause: The downstream Rovo service rejected the shape of your params. The gateway forwards this error unchanged, so the code originates downstream rather than at the gateway.
Possible reasons:
message object — The params must contain a message field.parts — The message must contain at least one part.role — Must be "user" or "agent".Resolution: Ensure your message follows the required format:
1 2{ "params": { "message": { "kind": "message", "messageId": "22222222-2222-4222-8222-222222222222", "role": "user", "parts": [{ "kind": "text", "text": "Your message here" }] } } }
message/send returns a single response after Rovo finishes the task. Requests that run longer than roughly 30 seconds can be terminated at the network edge with an HTTP 500 before Rovo finishes. That limit is enforced by the CDN rather than by the gateway, so treat the number as approximate. Use message/stream for any request that may run longer, including multi-step work.
Symptom: an HTTP 500 is returned roughly 30 seconds after sending a message/send request. The gateway and Rovo are healthy; the response is cut off before Rovo finishes.
Fix: resend the request using message/stream and consume the SSE event stream until the task reaches a terminal state.
failedSymptom: The HTTP response is 200, but result.status.state is "failed".
Possible causes:
Resolution:
result.status.message.parts for the failure text returned by the gateway.Symptom: Response contains error code -32006 with "Agent invocation failed."
Possible causes:
Resolution:
error.data payload if present - it may include the failed task returned by the gateway.If you need assistance with A2A integration:
Rate this page: