Why i cant redirect to external url when handle specific path

System Information
  • Strapi Version: ^4.2.3 in middleware package and ^4.15.5-alpha.5 in strapi admin
  • Operating System: windows 10
  • Database: sqlite
  • Node Version: 18

import { SSOService } from '../services/sso.service';
import { RoutePrefixes } from '../../types';
import { Context } from 'koa';

export default (_config: any, { strapi }: any) => {
  return async (ctx: Context, next: () => any) => {
    const service: SSOService = new SSOService(strapi, ctx);

    if (!ctx.request.url.startsWith(RoutePrefixes.ADMIN)) {
      await next();

    if (ctx.request.url.startsWith(RoutePrefixes.LOGOUT)) {

    await service.redirect();

    await next();

Something strange is happening, or I don’t understand something

I need to redirect the user to the main application page (outside strapi) via an external link after he logs out
I processed the path /admin/logout so that after that it would be redirected, but this does not work and koa just sends a GET request returning code 200,
but outside of the condition I have another method (service.redirect) that does the same thing, it also has the redirect logic through ctx.redirect, but it only works when the page is restarted
how can I do the redirect correctly?