getPageBySlug returned undefined while the feature already mapped PageNotFoundError to NOT_FOUND and blog throws for missing slugs (B11). Unify on the throwing contract: use case throws, controller narrows to a non-optional presenter, the server component catches the domain error to render its not-found state, and the router now surfaces NOT_FOUND. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>