blitz-js / blitz-js/legacy-framework

RedirectError does not work in global middleware

Open
#17 1 comment 0 reactions 0 assignees View on GitHub
kind/bug legacy-framework status/ready-to-work-on
Dominant language
JavaScript
Stars
3
Forks
2
PR merge metrics
No merged PRs in 30d

Description

### What is the problem?

Throwing a RedirectError in global middleware will not result in any actual redirects.

### Paste all your error logs here:

```bash
18:52:27.220 ERROR Error while processing the request

RedirectError https://example.com
details:
{
name: 'RedirectError',
statusCode: 302,
url: 'https://example.com'
}
[RedirectError: https://example.com] {
statusCode: 302,
url: 'https://example.com'
}
events.js:352
throw er; // Unhandled 'error' event
^

Error [ERR_STREAM_WRITE_AFTER_END] [ERR_STREAM_WRITE_AFTER_END]: write after end
at writeAfterEnd (_http_outgoing.js:694:15)
at ServerResponse.end (_http_outgoing.js:815:7)
at ServerResponse.end (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/compiled/compression/index.js:1:4179)
at ServerResponse.apiRes.end (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/server/api-utils.js:83:25)
at sendError (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/server/api-utils.js:490:9)
at Object.apiResolver (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/server/api-utils.js:127:13)
at async DevServer.handleApiRequest (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/server/next-server.js:766:9)
at async Object.fn (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/server/next-server.js:657:37)
at async Router.execute (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/server/router.js:206:32)
at async DevServer.run (/home/david/mrb-docker-dev/www/mrb-orderpicker/node_modules/next/dist/server/next-server.js:834:29)
Emitted 'error' event on ServerResponse instance at:
at writeAfterEndNT (_http_outgoing.js:753:7)
at processTicksAndRejections (internal/process/task_queues.js:83:21) {
code: 'ERR_STREAM_WRITE_AFTER_END'
}

```

### Paste all relevant code snippets here:

```
PASTE_HERE (leave the ``` marks)
```

### What are detailed steps to reproduce this?

1. Throw a RedirectError inside global middleware.

### Run `blitz -v` and paste the output here:

```bash
Linux 5.4 | linux-x64 | Node: v14.17.3

blitz: 0.40.0 (global)
blitz: 0.41.1 (local)

Package manager: npm
System:
OS: Linux 5.4 Linux Mint 20.2 (Uma)
CPU: (12) x64 AMD Ryzen 5 5600X 6-Core Processor
Memory: 1.81 GB / 15.62 GB
Shell: 5.0.17 - /bin/bash
Binaries:
Node: 14.17.3 - ~/.nvm/versions/node/v14.17.3/bin/node
Yarn: 1.22.11 - ~/.nvm/versions/node/v14.17.3/bin/yarn
npm: 7.24.0 - ~/.nvm/versions/node/v14.17.3/bin/npm
Watchman: Not Found
npmPackages:
@prisma/client: 3.1.1 => 3.1.1
blitz: 0.41.1 => 0.41.1
prisma: 3.1.1 => 3.1.1
react: 18.0.0-alpha-5ca4b0433-20211020 => 18.0.0-alpha-5ca4b0433-20211020
react-dom: 18.0.0-alpha-5ca4b0433-20211020 => 18.0.0-alpha-5ca4b0433-20211020
typescript: 4.4.3 => 4.4.3
```

### Please include below any other applicable logs and screenshots that show your problem:

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.