5.3 Error Propagation in Multi-Agent Systems
What You Need to Know
Section titled “What You Need to Know”Error propagation determines whether a multi-agent system recovers gracefully or fails silently. When a subagent encounters a failure — a timeout, a permission error, an invalid query — how that failure information flows back to the coordinator dictates the system’s reliability. The exam tests your understanding of structured error context, the two critical anti-patterns, and the distinction that most developers get wrong: access failures versus valid empty results.
Structured Error Context
Section titled “Structured Error Context”When a subagent fails, it must return structured error context that enables the coordinator to make intelligent recovery decisions. This context must include four elements:
1. Failure type. Categorise the failure: transient (timeout, rate limit — may succeed on retry), validation (bad input — fix the query), business (rule violation — escalate or find alternative), or permission (access denied — cannot be retried without authorisation changes).
2. What was attempted. The specific query, parameters used, and target system. “Searched academic database for ‘renewable energy policy’ with date range 2022-2024” is actionable. “Search failed” is not.
3. Partial results gathered before failure. If the subagent retrieved three of five sources before timing out, those three results are valuable. Discarding them because the overall operation failed is wasteful.
4. Potential alternative approaches. The subagent knows its domain. If an academic database is down, it might suggest trying a different database, broadening the search terms, or checking cached results. These suggestions help the coordinator decide on recovery strategy.
{ "status": "partial_failure", "failureType": "transient", "attemptedAction": { "tool": "search_academic_db", "query": "renewable energy policy", "dateRange": "2022-2024" }, "partialResults": [ { "title": "EU Renewable Energy Directive 2023", "source": "EUR-Lex", "retrieved": true } ], "alternativeApproaches": [ "Retry with narrower date range (2023-2024)", "Search alternative database: government_publications", "Use cached results from previous research session" ]}This structure gives the coordinator everything it needs to decide: retry the same query, try an alternative, proceed with partial results, or escalate.
The Two Anti-Patterns
Section titled “The Two Anti-Patterns”The exam tests these explicitly. Both are catastrophic in different ways:
Silent suppression: returning empty results marked as success. This is the worst anti-pattern. The subagent encounters a timeout but returns { "results": [], "status": "success" }. The coordinator believes the search ran and found nothing. It won’t retry, won’t try alternatives, and produces a synthesis that silently omits an entire research area. The final output looks complete. It is missing critical content.
Silent suppression is especially dangerous because it’s invisible. The output looks correct — it just has gaps that nobody can detect. In a customer support context, it might mean the agent reports “no orders found” when the order lookup system was actually down, leading the agent to tell the customer they have no account.
Workflow termination: killing the entire pipeline on a single failure. One subagent times out and the entire research pipeline crashes. The other four subagents completed successfully, but their results are thrown away. This is a disproportionate response that wastes completed work and provides no recovery path.
The correct middle ground is structured error propagation: the failing subagent reports what happened, the coordinator assesses the damage, and the system continues with partial results or targeted recovery.
Access Failure vs Valid Empty Result
Section titled “Access Failure vs Valid Empty Result”This distinction is critical and the exam tests it directly:
Access failure: The tool could not reach the data source. A timeout, a connection error, a permission denial. The search did not execute. Consider retry with the same or modified parameters.
Valid empty result: The tool reached the source and executed the query. It found no matches. This IS the answer. No retry is needed because the system worked correctly — there simply are no results for this query.
Conflating these leads to two problems:
- Treating access failures as valid empty results means you never retry when you should.
- Treating valid empty results as access failures means you waste time retrying a query that will always return nothing.
# Access failure — consider retry{ "status": "error", "failureType": "transient", "message": "Connection timeout after 30s", "shouldRetry": True}
# Valid empty result — no retry needed{ "status": "success", "results": [], "message": "Query executed successfully. No matching records found.", "shouldRetry": False}Coverage Annotations
Section titled “Coverage Annotations”When a synthesis agent combines findings from multiple subagents, the output should note which topic areas are well-supported and which have gaps. If one subagent failed to retrieve sources on geothermal energy, the synthesis should say:
“Section on geothermal energy is limited due to unavailable journal access during research.”
This is far better than silently omitting the topic. Coverage annotations let the consumer know what the report covers fully and where there are known limitations. Without them, a gap in the synthesis looks like the topic was not relevant rather than the source being unavailable.
Local Recovery for Transient Failures
Section titled “Local Recovery for Transient Failures”Subagents should implement local recovery for transient failures — retry logic, fallback sources, degraded responses — before propagating errors to the coordinator. Only propagate errors the subagent can’t resolve locally. When propagating, always include what was attempted and any partial results gathered.
This reduces coordinator complexity. The coordinator doesn’t need to manage retry logic for every possible transient failure across every subagent. Each subagent handles its own transient failures and escalates only the persistent ones.
Exam Traps
Section titled “Exam Traps”Practice Scenario
Section titled “Practice Scenario”A web search subagent in a multi-agent research system times out while researching a complex topic. You need to design how this failure information flows back to the coordinator. Which approach best enables intelligent recovery?
- A. Return structured error context including failure type, attempted query, partial results, and potential alternative approaches
- B. Implement automatic retry with exponential backoff, returning a generic search unavailable status only after all retries are exhausted
- C. Catch the timeout and return an empty result set marked as successful, so the rest of the workflow carries on regardless of the failure
- D. Propagate the timeout exception to a top-level handler that terminates the entire research workflow at once, discarding everything
Answer & explanation
Correct: A
- A — This gives the coordinator everything it needs to decide: retry with modified query, try an alternative approach, or proceed with partial results.
- B — The generic status hides valuable context from the coordinator, preventing informed recovery decisions even after retries fail.
- C — Silent suppression prevents any recovery. The coordinator believes the search succeeded and found nothing, so it will not attempt alternatives.
- D — Workflow termination wastes partial results from other subagents that may have completed successfully.
Sources
Section titled “Sources”- Claude Certified Architect Foundations Exam Guide — Domain 5, Task Statement 5.3 — Anthropic
- Anthropic Multi-Agent Patterns — Anthropic
Exam Simulator
Section titled “Exam Simulator”Five exam-style multiple-choice questions on Error Propagation in Multi-Agent Systems. Pick an answer, then open the explanation.
Question 1
Section titled “Question 1”A web search subagent in a multi-agent research system times out while researching a topic. You need to design how this failure information flows back to the coordinator. Which approach best enables intelligent recovery?
- A. Propagate the timeout exception to a top-level handler that terminates the entire research workflow
- B. Implement automatic retry with exponential backoff, returning a generic ‘search unavailable’ status only after all retries are exhausted
- C. Catch the timeout and return an empty result set marked as successful
- D. Return structured error context including failure type, attempted query, partial results, and potential alternative approaches
Answer & explanation
Correct: D
- A is wrong: Workflow termination wastes partial results from other subagents that completed successfully.
- B is wrong: The generic ‘search unavailable’ hides the query, partial results, and alternatives from the coordinator, preventing informed recovery even after retries fail.
- C is wrong: Silent suppression — the worst anti-pattern. The coordinator believes the search succeeded and found nothing, so it will never attempt alternatives.
- D is correct: Structured error context gives the coordinator everything it needs: failure type (transient), what was tried, partial results gathered, and alternatives to try.
Question 2
Section titled “Question 2”A subagent searches a database for customer orders and returns zero results. The subagent’s code catches all exceptions and returns {results: [], status: ‘success’}. The database was actually experiencing intermittent connectivity issues. What is this failure pattern called?
- A. Graceful degradation
- B. Silent suppression
- C. Workflow termination
- D. Defensive programming
Answer & explanation
Correct: B
- A is wrong: Graceful degradation involves providing reduced functionality while acknowledging the limitation. This hides the failure entirely.
- B is correct: Silent suppression — returning empty results marked as success when the operation actually failed. The coordinator cannot recover because it believes the search succeeded.
- C is wrong: Workflow termination would crash the entire pipeline. Silent suppression keeps running but with invisible gaps.
- D is wrong: Defensive programming would include proper error handling. Masking failures as success is the opposite of defensive.
Question 3
Section titled “Question 3”A research pipeline has 5 subagents. Subagent 3 fails with a timeout. The system terminates the entire pipeline. What is the primary cost of this approach?
- A. The timeout will not be logged for debugging
- B. The user will receive an unhelpful error message
- C. Partial results from the 4 that succeeded are lost
- D. The failed subagent cannot be restarted independently
Answer & explanation
Correct: C
- A is wrong: Logging is a separate concern. The pipeline can log the error whether or not it terminates.
- B is wrong: Error messages can be customised regardless of the termination strategy.
- C is correct: Workflow termination wastes completed work. The other 4 subagents may have produced valuable partial results that could be used in the synthesis.
- D is wrong: Independent restart is possible with structured error propagation, but that is the solution, not the cost of termination.
Question 4
Section titled “Question 4”A subagent searches an academic database and returns zero results. Should the coordinator retry this search?
- A. It depends: no matches needs no retry, a failed connection does
- B. Yes, always retry zero-result searches in case of intermittent connectivity
- C. No, zero results means the data does not exist and retrying would waste time
- D. Yes, but only with modified search parameters to broaden the query
Answer & explanation
Correct: A
- A is correct: The critical distinction is access failure vs valid empty result. Access failure (could not reach source) warrants retry. Valid empty result (reached source, no matches) IS the answer.
- B is wrong: If the query executed successfully and genuinely found no matches, retrying wastes time on a query that will always return nothing.
- C is wrong: Zero results from a failed connection is not the same as zero results from a successful query. The coordinator needs to know which one occurred.
- D is wrong: Broadening the query might be appropriate for an access failure, but if the original query executed and found nothing, the results are valid.
Question 5
Section titled “Question 5”A synthesis agent combines findings from three research subagents. One subagent failed to retrieve journal articles on geothermal energy. The synthesis report covers solar and wind energy thoroughly but does not mention geothermal. What is the correct approach?
- A. The report is acceptable — if the data was unavailable, the topic should be excluded
- B. Delay the report until the geothermal research can be completed
- C. Add a coverage annotation noting that the geothermal section is limited here
- D. Estimate geothermal findings based on the solar and wind data as a reasonable proxy
Answer & explanation
Correct: C
- A is wrong: Silently omitting the topic makes the gap invisible. A reader would assume geothermal was not relevant, not that the source was unavailable.
- B is wrong: Delaying the entire report for one failed section is disproportionate, similar to the workflow termination anti-pattern.
- C is correct: Coverage annotations explicitly note which areas have gaps and why. This transparency lets the consumer know what the report covers fully and where there are known limitations.
- D is wrong: Fabricating findings based on proxy data produces unreliable content. The correct approach is transparency about the gap.