# Exercise 09: Load, fail and recover

Use a copy of examples/09. Do not fetch a public third-party API for this exercise.

## A. Predict
Why are there two awaits? Does a 404 automatically reject fetch? Is valid JSON always valid event data?

## B. Investigate each fixture
Run normal, empty, wrong-shape, malformed and missing-file cases. Record the visible status, whether the button becomes enabled again, and what the Console/Network evidence says. Return to normal data and verify recovery.

## C. Transfer
Extend the data check to require a nonempty text title and a nonnegative integer places field on every event. Add a local fixture that fails only the new count rule. Keep retry available after failure.

## Evidence
A five-case result record, the extended validation and one new fixture. Do not replace all failures with a fake empty successful result.

[Return to lesson](../lessons/09.html) · [Explained answer](../solutions/09.html)
