app.Use((ctx, next) => {
try {
await next();
} catch(Exception exception) {
ctx.Response.WriteAsync(/*Как-то форматируем наше сообщение об ошибке - обычно в объект. И отдаём 500й код */);
// Ещё есть смысл залоггировать это и сообщить разрабам, ибо 500й код - это недоработка логики.
}
});
Как посмотреть какой запрос генерится?
А на счёт логики не подскажу, тк не уверен в том, как сокобан работает.