The blog post-detail route /:slug matches any single segment, so /otel was being served as a missing blog slug (404). Order otel/routes ahead of the blog routes so the literal /otel + /otel/stream match first.