When fetchMissions returns a non-array (envelope shape, error path, or mocked detail object) setMissions(data) leaks the bad shape into render, where missions.filter() throws "is not a function" and crashes the entire MissionManager test file. Coerce to [] before storing, matching the existing defenses on the useState init and cache-hydration paths. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>